- Use shorter syntax / shorter variable name as possible
- You still might want to leave comments for visual cue
- One pass! No additional passes!
- Most emissive / specular oriented scenes will suffer since there is no bloom available
- You should ask the organizer about their compo machine
- You might want to consider the factor in order to achieve constant 60fps?
- This time the machine uses a machine that is slightly lesser than mine so I've tried to do less intensive a bit
gl_FragCoord
isgl_FragCoord
- You can rename the variable name for output color
- I prefer
o
,out_color
is terrible since you have to hit an underscore
- I prefer
- Redo is
Ctrl+Y
. You cannot useShift+Ctrl+Z
- Apply is
Ctrl+R
- Don't push
Ctrl+T
, it messes the code up- If you have pressed this, be calm, and press
Ctrl+Z
- If you have pressed this, be calm, and press
These are stuff I don't want to forget and fucking die
#define time fGlobalTime
- because I can't remember
fGlobalTime
- because I can't remember
#define saturate(a) clamp((a),0.,1.)
#define linearstep(a,b,t) saturate(((t)-(a))/((b)-(a)))
- DON'T FORGET THE
saturate
- DON'T FORGET THE
randSphere
- theta is
PI*2.*rand
- phi is
acos(rand*2.-1.)
- output y is
cos(p)
- theta is
easeCeil
floor(x)+(.5+.5*cos(PI*exp(-30.0*fract(x))))
- ifs
- parameters are
p
,rot
, andshift
- state are
pt
andt
- procedure:
pt=abs(pt)-abs(t*pow(2.0,-i)
- apply lofi to the
t
might be good to remove artifacts
- apply lofi to the
- rotate the
t
usingrot
- fold using
if(pt.x<pt.y)
,if(pt.y<pt.z)
- parameters are
sdBox
max(distance to nearest edge, 0.0) + min(distance to nearest surface plane, 0.0)
- You can forget the second one, it just makes the internal distance being constant zero
- distance function
- You should make it
vec4
instead offloat
for future extensibility - if you want to scroll repetitions, translate first, then repetite
- if you want to grab something that is specific to each repetition instances, grab it before repetite
- combine a repetition after the ifs, it would make things +100% cool
- You should make it
- ambient occlusion
- choose an appropriate ao function for the geometry you are going to use
- this itme you really cannot trust your distance function to be uniform
- today's theory is like this:
- offset a ray position by
(0.02+0.02*i)*hemisphere
- accumulate
linearstep(0.02,0.0,map(pt))
- repeat above 64 times
- substract
saturate(2.0*sqrt(accum))
from 1.0
- offset a ray position by
- choose an appropriate ao function for the geometry you are going to use
- ray generation
- who needs a camera? nooope
- distortion -> rotate -> dof
- shading
- definition of
fog
should be outside of hit test branch - if you want to do glow, it also should be outside of hit test branch
- invest in ao, no lights required
- definition of
- post processes
- don't forget gamma correction
.4545
- vignette
- color correction
- rules, you defo should do this in earlygame
- cheesy scanline,,,,,,
- trust me, it actually makes it look better..............
- don't forget gamma correction
Since vote happen in every 15+5n minutes you have to keep building your shader constantly Do something dynamic, keep evolving, utilize previous contributions
- Earlygame
- it seems we have plenty of time to implement entire ifs raymarcher before the first encounter. go for it
- I will use edge rendering at this point, since there is no time to implement shading
- post processing is recommended to make it look good at low cost
- probably make it tunnel as a temporary treatment?
- You might want to implement
easeCeil
asap- cool animation is cool
- it seems we have plenty of time to implement entire ifs raymarcher before the first encounter. go for it
- Midgame
easeCeil
will be required at this point- let's repetite the ifs
- fog would be good to implement after repetite things
- Lategame
- do the ao
- Make ifs glow
- dof?
- If you really run out of everything
- reflection
- costs so much, not recommended
- glitch
- can mess everything you've built so far, but somehow everyone love glitches
- reflection