Metadata in PDF files can be stored in at least two places:
- the Info Dictionary, a limited set of key/value pairs
- XMP packets, which contain RDF statements expressed as XML
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
def scramble(unscrambled): | |
''' | |
Scrambles the word(s) in unscrambled such that the first and last letter remain the same, | |
but the inner letters are scrambled. Preserves the punctuation. | |
See also: http://science.slashdot.org/story/03/09/15/2227256/can-you-raed-tihs | |
''' | |
import string, random, re |
/* | |
2D Angle Interpolation (shortest distance) | |
Parameters: | |
a0 = start angle | |
a1 = end angle | |
t = interpolation factor (0.0=start, 1.0=end) | |
Benefits: | |
1. Angles do NOT need to be normalized. |
Please consider using http://lygia.xyz instead of copy/pasting this functions. It expand suport for voronoi, voronoise, fbm, noise, worley, noise, derivatives and much more, through simple file dependencies. Take a look to https://github.com/patriciogonzalezvivo/lygia/tree/main/generative
float rand(float n){return fract(sin(n) * 43758.5453123);}
float noise(float p){
float fl = floor(p);
float fc = fract(p);
shader_type canvas_item; | |
uniform sampler2D front; | |
uniform sampler2D left; | |
uniform sampler2D right; | |
uniform sampler2D back; | |
uniform sampler2D top; | |
uniform sampler2D bottom; | |
void fragment() { |
[gd_scene load_steps=3 format=2] | |
[sub_resource type="Shader" id=1] | |
code = "shader_type canvas_item; | |
// Godot Nvidia FXAA 3.11 Port | |
// Usage: Drop this in to any 3D scene for FXAA! This is a port of the \"PC High Quality Preset 39\". However the medium quality | |
// parameters are also included. For medium quality, just comment out sections \"PS 6\" and above and uncomment the \"med 13\" variables. |
tool | |
extends AudioStreamPlayer #exactly the same code should work for extending 2D and 3D versions | |
class_name RoundRobinPlayer | |
export(int, "sequence", "random", "shuffle") var queue_mode = 0 | |
export(Array, AudioStream) var playlist = [] setget _set_playlist, _get_playlist | |
export(bool) var round_robin_playing = false setget _set_playing, _is_playing # can't override properties so use this for animations | |
var playlist_index = -1 # current position in the playlist | |
var shuffled_indices = [] # Array<int> of shuffled playlist indices |
A. Schneider, "Real-Time Volumetric Cloudscapes," in GPU Pro 7: Advanced Rendering Techniques, 2016, pp. 97-127. (Follow up presentations here, and here.)
S. Hillaire, "Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite" in Physically Based Shading in Theory and Practice course, SIGGRAPH 2016. [video] [course notes] [scatter integral shadertoy]
[R. Högfeldt, "Convincing Cloud Rendering – An Implementation of Real-Time Dynamic Volumetric Clouds in Frostbite"](https://odr.chalmers.se/hand
[gd_resource type="ShaderMaterial" load_steps=7 format=2] | |
[sub_resource type="VisualShaderNodeGlobalExpression" id=1] | |
size = Vector2( 690, 490 ) | |
expression = "float checker(vec3 uva){ | |
vec3 c = uva; | |
c *= 40.0;//square modifier, recommended values (20,40,80,160) | |
c = mod(trunc(c), 2.0); | |
float r = 0.0; | |
if(c.x > 0.0 && c.y < 1.0){ |