Goals: Add links that are reasonable and good explanations of how stuff works. No hype and no vendor content if possible. Practical first-hand accounts of models in prod eagerly sought.
![Screenshot 2023-12-18 at 10 40 27 PM](https://private-user-images.githubusercontent.com/3837836/291468646-4c30ad72-76ee-4939-a5fb-16b570d38cf2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzNTQ5NDksIm5iZiI6MTcyMDM1NDY0OSwicGF0aCI6Ii8zODM3ODM2LzI5MTQ2ODY0Ni00YzMwYWQ3Mi03NmVlLTQ5MzktYTVmYi0xNmI1NzBkMzhjZjIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcwNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MDdUMTIxNzI5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTE1YWEyZjRlMTgwMDAyZDNiZmM0NzA5N2NlOGQxNWRiZGNiNmQ1ZWY4Yzg1NmVjMjcwOTllODMyYTdhM2Q2OSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.2kNOhWILT2x27H1LNIuFvgo6vgH-8KCppYKGVKHAUvc)
use std::borrow::Cow; | |
use glfw::WindowEvent; | |
async fn run() { | |
let mut glfw = glfw::init(glfw::FAIL_ON_ERRORS).unwrap(); | |
let (window, events) = glfw | |
.create_window( | |
1920 / 2, | |
1080 / 2, |
//https://neginfinity.bitbucket.io/ - a blog where I found how to do shadows for raymarched/raytraced primitives. | |
//https://docs.unity3d.com/Manual/SL-UnityShaderVariables.html | |
//https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/CGIncludes/UnityCG.cginc - Most interesting stuff ;) | |
//https://github.com/TwoTailsGames/Unity-Built-in-Shaders/tree/master/CGIncludes | |
//https://docs.unity3d.com/Manual/SL-Shader.html | |
//http://developer.download.nvidia.com/CgTutorial/cg_tutorial_appendix_e.html | |
//https://unity3d.com/how-to/shader-profiling-and-optimization-tips | |
//https://docs.unity3d.com/Manual/SL-UnityShaderVariables.html | |
//http://www.deepskycolors.com/archive/2010/04/21/formulas-for-Photoshop-blending-modes.html | |
//http://www.iquilezles.org/blog/ |
http://nvidia.custhelp.com/app/answers/detail/a_id/3507/~/generating-an-event-trace-log-for-gpuview
https://msdn.microsoft.com/en-us/library/windows/desktop/jj585574(v=vs.85).aspx
https://docs.microsoft.com/en-us/windows/desktop/direct2d/profiling-directx-applications
https://knarkowicz.wordpress.com/2013/05/25/simple-gpuview-custom-event-markers/
https://software.intel.com/en-us/articles/removing-cpu-gpu-sync-stalls-in-galactic-civilizations-3 ( https://www.intel.com/content/www/us/en/developer/articles/case-study/removing-cpu-gpu-sync-stalls-in-galactic-civilizations-3.html )
UNITY_MATRIX_IT_MV[0].xyz = ??? | |
UNITY_MATRIX_IT_MV[1].xyz = Camera Up | |
UNITY_MATRIX_IT_MV[2].xyz = Camera Forward | |
float3 forward = -normalize(UNITY_MATRIX_V._m20_m21_m22); | |
float3 up = normalize(UNITY_MATRIX_V._m10_m11_m12); | |
float3 right = normalize(UNITY_MATRIX_V._m00_m01_m02); | |
float3 cameraUp = unity_CameraInvProjection[1].xyz; | |
float3 camRight = cross(unity_CameraInvProjection[2].xyz, cameraUp); |
The purpose of this document is to make recommendations on how to browse in a privacy and security conscious manner. This information is compiled from a number of sources, which are referenced throughout the document, as well as my own experiences with the described technologies.
I welcome contributions and comments on the information contained. Please see the How to Contribute section for information on contributing your own knowledge.
(typing off the top of my head, might not compile)
Since Unity 4.3:
In the shader, instead of writing Cull Off
, write Cull [_MyCullVariable]
, the value will be fetched from the material or global float/int variable _MyCullVariable then.
You could have it be part of material, e.g. inside Properties block:
[Enum(Off,0,Front,1,Back,2)] _MyCullVariable ("Cull", Int) = 1
# Get all nodes of type Read | |
readnodes = nuke.allNodes('Read') | |
for readnode in readnodes: | |
print readnode | |
# List all knobs for selected node | |
print( nuke.toNode('Read1') ) | |
# List all knobs for specific node | |
print( nuke.selectedNode() ) |