|Unity C++ code
||C#/shader code (MIT open source)
Render set of objects with filter/sort/params/batch
Internal graphics platform abstraction
Frame render pass structure & logicShader/compute code
Continue reading “SRP studies”
I have been so confusing about the w component for ages, until I read this:
Explaining Homogeneous Coordinates & Projective Geometry
So I quickly made a simple to shader to test it out:
To summarize, w component is the
The W dimension is the distance from the projector to the screen(object).
when w > 1, the object looks far (smaller)
when w = 1, the size remains the same
when w = 0, it’s actually covering the whole screen
This is the reason why we have make sure the w component is correct when we are doing _Object2World and _World2Object
Also a interesting point to note from the blog post:
If W=1, then it is a point light. If W=0, then it is a directional light.
(Thanks Kemal for the tutorial links!)
3.0: 2.5 + interpolators10 + samplelod + fragcoord (also contains fragdepth)
3.5: 3.0 + interpolators15 + mrt4 + + integers + 2darray + instancing
4.0: 3.5 + [mrt8] + geometry
4.5: 3.5 + compute + randomwrite (so it means it has no 4.0 features)
4.6: 4.0 + [cubearray] + tesshw + tessellation (so it means it has no 4.5 features)
5.0: 4.0 + 4.5 + 4.6 + [interpolators32] (it has everything)
[Pink] : Mobile won’t implies it
info from @Aras
To prevent shader from code upgrade
Since there are so many detailed tutorial about compute shaders so I’m not going to explain every line of the code. Here are just some basic concept.
Continue reading “Compute Shader and Compute Buffer”
Vert and Frag + Zwrite On in Deferred are not dynamically batched
(it means transparent shaders will be batched)
unless the shader writes into GBuffer. But then, putting “DisableBatching” = “True” into this shader, it is still batched!