vertex 셰이더가해야 할 가장 중요한 일은 mesh의 오브젝트공간위치에서 클립공간위치로 변환하는 것입니다. 이는 의도한 screen 위치에서 fragment를 올바르게 렌더링하기 위해 필요합니다. 빌트인 셰이더에서는 UnityObjectToClipPos 함수를 사용해서 작업을 수행 할 수 있지만이 이름은 TransformObjectToHClip (pipeline-core SpaceTransforms.hlsl에서 찾을 수 있음)으로 이름이 변경되었습니다. 즉, 아래와 같이 URP에서 변환을 처리하는 또 다른 방법이 있습니다. Varyings vert(Attributes IN) { Varyings OUT; VertexPositionInputs positionInputs = GetVertexPosition..

shader graph의 마스터노드의 position input은 vertex shader 단계에 영향을 줍니다. vertex 단계에서는 당연히 fragment 단계에 영향을 주지 못합니다. (다만, 텍스쳐를 샘플링해서 vertex 단계에서 이용하려면 SampleTexture2DLOD를 사용할 수 있습니다.) vertex를 조작하기위해 object space로된 position 노드를 만들면 우리가 조작할 수 있는 vertex의 위치값 (vector3)가 반환됩니다. (object 공간의 위치값이므로 vertex를 제어하려면 Scale, Rotate, Postion 순으로 제어해야 의도한 결과가 나올 수 있습니다.) 쉐이더는 GPU에서 실행되기에 실제 mesh자체를 업데이트하거나 colider에 영향을 ..
- Total
- Today
- Yesterday