Single thread / direct -force-gfx-direct
Graphics Jobs / legacy -force-gfx-jobs legacy
Cpu command – run in linear
Render command – run in parallel
Cpu command – run in parallel
Render command – run in parallel
Update:
If you are using 2019.1+, you might notice there is a big change to the SRP APIs.
I’ve created a new repository and you can grab here. Much cleaner and minimal.
https://github.com/cinight/CustomSRP
Here lists out exact what codes enable the Unity feature when making our custom SRP.
Indicators:
In pipeline code
In shader code
✅ Doesn’t need to specifically care about it in codes. Write the codes as usual.
#ifdef SHADER_TARGET_SURFACE_ANALYSIS
//Codes that Surface Shader should work
#endif
Me and a few of my friends (StungaLab) decided to create this animation from last year and I’m responsible for all Unity things – setup / shaders / tools / plug-ins etc. I didn’t help a lot as I have my full-time job in UK so most of the work are actually done by the 2 amazing 3D artists Felix Yin-Zhen Chu and Shadow Chi-Ho Wong, also 2D part by Carol Tsz-Ching Ng. It is the first time for us all to put ourselves into such a big production — target at high quality, massive amounts of assets, and short time-frame, (esp. ) lack of knowledge of using Unity (they are almost the first time Unity user). The final animation really surprised me.
I only have mobile game development experience in the past so there was no way for me to grab so many plug-ins and use so many expensive graphics features in any projects. So I had no idea how to correctly set things up for a project like this. Glad that I work in Unity and the knowledge I gained supported me a good start.
Continue reading “StungaLab – 21³ Cubic Animation Tech Note”
Played with https://github.com/Unity-Technologies/ml-agents
I fed a cat line art and let the agents to learn the path from the middle of the texture. After a few hours they are able to go within the line xD
Tried another random cat generator without machine learning xD
Using Graphics.DrawMeshInstancedIndirect so that I can calculate the fish positions with compute shader.
The moving tails are just vertex displacements in shader. Rotation are also done in the rendering shader.
Below is the look-at matrix that takes the normalized velocity to be the rotation, and to be the forward axis.
float4 ApplyRotation (float4 v, float3 rotation)
{
// Create LookAt matrix
float3 up = float3(0,1,0);
float3 zaxis = rotation;
float3 xaxis = normalize(cross(up, zaxis));
float3 yaxis = cross(zaxis, xaxis);
float4x4 lookatMatrix = {
xaxis.x, yaxis.x, zaxis.x, 0,
xaxis.y, yaxis.y, zaxis.y, 0,
xaxis.z, yaxis.z, zaxis.z, 0,
0, 0, 0, 1
};
return mul(lookatMatrix,v);
}