찾기
내용으로 건너뛰기
추적
•
displayport
•
masonry
•
tags
•
infp
•
searching
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======Providing vertex data to vertex programs====== Cg [[SL-ShaderPrograms|vertex programs]]을 위해서 꼭지점 데이터는 하나의 구조로서 패스되어야 합니다. 몇몇의 공통적으로 사용되는 꼭지점의 구조는 ''UnityCG.cginc'' include 파일에 정의되어 있고 대부분의 경우에 그것들을 사용하기에 충분합니다. 구조는 다음과 같습니다: * ''appdata_base'': 꼭지점은 위치, normal 그리고 하나의 텍스쳐 좌표로 이루어 집니다. * ''appdata_tan'': 꼭지점은 위치, 탄젠트, normal 그리고 하나의 텍스쳐 좌표로 이루어 집니다. 예를 들어 이 쉐이더는 그것의 normals에 기반해서 메쉬의 색을 칠하고 꼭지점 프로그램 입력으로 ''appdata_base'' 사용합니다: <file csharp>Shader "VertexInputSimple" { SubShader { Pass { CGPROGRAM #pragma vertex vert #include "UnityCG.cginc" struct v2f { float4 pos : SV_POSITION; fixed4 color : COLOR; }; v2f vert (appdata_base v) { v2f o; o.pos = mul (UNITY_MATRIX_MVP, v.vertex); o.color.xyz = v.normal * 0.5 + 0.5; return o; } ENDCG } } }</file> 사용자가 다른 꼭지점 데이터에 접근하기를 원한다면 사용자는 꼭지점 구조를 스스로 선언해야만 합니다. 구조 _members_ 다음의 리스트로부터 와야 합니다: * ''float4 vertex''는 꼭지점 위치 입니다 * ''float3 normal''은 꼭지점 normal 입니다 * ''float4 texcoord''는 첫 번째 UV 좌표 입니다 * ''float4 texcoord1''은 두 번째UV 좌표 입니다 * ''float4 tangent''는 탄젠트 벡터 입니다 (normal 매핑을 위해 사용되는). * ''float4 color''는 정점당 색상입니다 =====Examples===== ====Visualizing UVs==== 다음의 쉐이더 예들은 꼭지점 쉐이더 입력으로서 (구조''appdata''에서 정의된) 꼭지점 위치와 첫 번째 텍스쳐 좌표를 사용합니다. 메쉬의 UV 좌표를 디버그하는데 매우 유용합니다. UV 좌표는 빨강 그리고 녹색으로 시각화되고 0…1 범위 밖의 좌표는 적용된 옅은 추가적인 파랑색을 가집니다. <file csharp> Shader "!Debug/UV 1" { SubShader { Pass { Fog { Mode Off } CGPROGRAM #pragma vertex vert #pragma fragment frag // vertex input: position, UV struct appdata { float4 vertex : POSITION; float4 texcoord : TEXCOORD0; }; struct v2f { float4 pos : SV_POSITION; float4 uv : TEXCOORD0; }; v2f vert (appdata v) { v2f o; o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); o.uv = float4( v.texcoord.xy, 0, 0 ); return o; } half4 frag( v2f i ) : COLOR { half4 c = frac( i.uv ); if (any(saturate(i.uv) - i.uv)) c.b = 0.5; return c; } ENDCG } } }</file> {{:unity3d:SL-DebugUV1.png}}\\ // 원환체 매들 모델에 적용된 디버그 UV1 쉐이더 // 유사하게 이 쉐이더는 모델의 두 번째 UV 세트를 시각화합니다: <file csharp>Shader "!Debug/UV 2" { SubShader { Pass { Fog { Mode Off } CGPROGRAM #pragma vertex vert #pragma fragment frag // vertex input: position, second UV struct appdata { float4 vertex : POSITION; float4 texcoord1 : TEXCOORD1; }; struct v2f { float4 pos : SV_POSITION; float4 uv : TEXCOORD0; }; v2f vert (appdata v) { v2f o; o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); o.uv = float4( v.texcoord1.xy, 0, 0 ); return o; } half4 frag( v2f i ) : COLOR { half4 c = frac( i.uv ); if (any(saturate(i.uv) - i.uv)) c.b = 0.5; return c; } ENDCG } } }</file> ====Visualizing vertex colors==== 다음의 쉐이더는 꼭지점 쉐이더 입력으로서 (''appdata''구조에 정의된) 꼭지점의 위치와 정점당 색상을 사용합니다. <file csharp>Shader "!Debug/Vertex color" { SubShader { Pass { Fog { Mode Off } CGPROGRAM #pragma vertex vert // vertex input: position, color struct appdata { float4 vertex : POSITION; float4 color : COLOR; }; struct v2f { float4 pos : SV_POSITION; fixed4 color : COLOR; }; v2f vert (appdata v) { v2f o; o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); o.color = v.color; return o; } ENDCG } } }</file> {{:unity3d:SL-DebugColors.png}}\\ //색상으로 구워지는 조명을 가지는 모델에 적용되는 디버그 색상 쉐이더 // ====Visualizing normals==== 다음의 쉐이더는 꼭지점 쉐이더의 입력으로 (''appdata'' 구조에 정의된) 꼭지점 위치와 normal을 사용합니다. Normal’s X,Y,Z 컴포넌트는 R, G, B 색으로 시각화 됩니다. Normal 컴포넌트가 -1과 1 사이에 있기 때문에 우리는 그들을 스케일하고 결과 색상이 0…1 범위에서 보여질 수 있도록 한쪽으로 치우치게 합니다. <file csharp>Shader "!Debug/Normals" { SubShader { Pass { Fog { Mode Off } CGPROGRAM #pragma vertex vert // vertex input: position, normal struct appdata { float4 vertex : POSITION; float3 normal : NORMAL; }; struct v2f { float4 pos : SV_POSITION; fixed4 color : COLOR; }; v2f vert (appdata v) { v2f o; o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); o.color.xyz = v.normal * 0.5 + 0.5; o.color.w = 1.0; return o; } ENDCG } } }</file> {{:unity3d:SL-DebugNormals.png}}\\ // 모델에 적용되는 디버그 Normals 쉐이더. 사용자는 모델이 음영의 모서리를 가지는 것을 볼 수 있습니다 .// ====Visualizing tangents and binormals==== 탄젠트와 binormal 벡터는 normal 매핑을 위해서 사용됩니다. Unity에서 오직 탄젠트 벡터가 꼭지점에서 저장되고 binormal은 normal과 탄젠트로부터 파생됩니다. 다음의 쉐이더는 꼭지점 쉐이더의 입력으로서 (''appdata'' 구조에 정의된) 꼭지점 위치와 탄젠트를 사용합니다. 탄젠트의X,Y,Z 컴포넌트는 R, G, B 색으로 시각화 됩니다. Normal 컴포넌트가 -1과 1 사이에 있기 때문에 우리는 그들을 스케일하고 결과 색상이 0…1 범위에서 보여질 수 있도록 한쪽으로 치우치게 합니다. <file csharp>Shader "!Debug/Tangents" { SubShader { Pass { Fog { Mode Off } CGPROGRAM #pragma vertex vert // vertex input: position, tangent struct appdata { float4 vertex : POSITION; float4 tangent : TANGENT; }; struct v2f { float4 pos : SV_POSITION; fixed4 color : COLOR; }; v2f vert (appdata v) { v2f o; o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); o.color = v.tangent * 0.5 + 0.5; return o; } ENDCG } } }</file> {{:unity3d:SL-DebugTangents.png}}\\ //모델에 적용된 디버그 탄젠트 쉐이더 .// 다음의 쉐이더는 binormals를 시각화 합니다. 그것은 꼭지점의 입력으로서 꼭지점 위치, normal 그리고 탄젠트를 사용합니다. Binormal은 normal과 탄젠트로부터 계산됩니다. Normal 또는 탄젠트처럼 그것은 스케일될 필요가 있고 디스플레이 될 수 있도록 0…1의 범위로 치우쳐질 필요도 있습니다. <file csharp>Shader "!Debug/Binormals" { SubShader { Pass { Fog { Mode Off } CGPROGRAM #pragma vertex vert // vertex input: position, normal, tangent struct appdata { float4 vertex : POSITION; float3 normal : NORMAL; float4 tangent : TANGENT; }; struct v2f { float4 pos : SV_POSITION; float4 color : COLOR; }; v2f vert (appdata v) { v2f o; o.pos = mul( UNITY_MATRIX_MVP, v.vertex ); // calculate binormal float3 binormal = cross( v.normal, v.tangent.xyz ) * v.tangent.w; o.color.xyz = binormal * 0.5 + 0.5; o.color.w = 1.0; return o; } ENDCG } } }</file> {{:unity3d:SL-DebugBinormals.png}}\\ //모델에 적용된 디버그Binormals 쉐이더. 예쁩니다 !// {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.SL-VertexProgramInputs|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
유니티3D ( Unity3D )
Writing vertex and fragment shaders
Reference Manual
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
blood_of_the_daedra
clavicus_vile_quest
[움브라의 검]
mazoga_the_orc_quest
만듦
seeking_your_roots
[뿌리찾기 (Seeking Your Roots)]
i2c
arduino
[1306 i2c]
임신과_치과치료
[임신과 치과치료]
유산_사산_휴가_기간
[유산/사산 후 근로기준법 상 휴가기간]
오디오
[휴대기기]
대마초
glycemic_index
[설탕을 피하고, GI수치 60이하의 식품을 먹는다]
reactive_hypoglycemia
[🚫 예방법]
low_insulin_diet
[혈당지수(GI) 낮은 음식을 선택할 것]
vaermina_quest
black_soul_gem
tes4
↷ 링크가 이동 작업으로 인해 적응했습니다
black_soul_gem_oblivion
↷ 문서 이름이 game:tes4:black_soul_gem_oblivion에서 game:tes4:black_soul_gem(으)로 바뀌었습니다