struct appdata {
float4 vertex : POSITION;
float2 uv_MainTex : TEXCOORD0;
};
v2f vert(appdata v)
{
//코드
}
만약 이런 식으로 있다고 치면
appdata 구조체가 vertex쉐이더 인풋으로 들어오는 거자나요?
근데 궁금한게
유니티 똑같은 매쉬에다가
appdata 구조체를 다르게 하면 어떻게 되나요? 예를 들어 uv를 뺀다던가
다렉에서는 정점하나에 걸맞는 layout을 만들어줘야했던 것으로 기억하는데
유니티에서 큐브 같은거 하나 만들면 이 큐브의 정점에 무슨 데이터가 들어있는 줄알고 vertex쉐이더의 input 구조체를 만드는지....
너무 헷갈립니다 ㅠㅠ
정점 데이터 라는게 버텍스 노말이나 컬러 말씀하시는건지..
다렉, 쉐이더, 그리고 버텍스쪽 지식이 있어보이니
아래 링크에서 쉐이더 샘플코드 복붙해서 매티리얼에 바르고 큐브에 넣어보면서 연구해보시져
https://docs.unity3d.com/kr/530/Manual/SL-VertexProgramInputs.html
유니티에서도 dx에 vertexdecreptionparm같은거 직접 만들수있어요 근데 이거 안만들고 그냥 고수준api사용하면 전부 만들어서 넣습니다 그리고 쉐이더에서는 스키마있어서 그거대로 가져오는거죠 - dc App