찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======Using Depth Textures====== ======Desktop!====== >>desktop<< 각 픽셀이 고도의 정확한 깊이 값을 포함하는 [[class-RenderTexture|Render Textures]]를 생성하는 것이 가능합니다.([[ScriptRef:RenderTextureFormat.Depth.html|RenderTextureFormat.Depth]]를 참고하시기 바랍니다). 이것은 대부분 어떠한 효과들이 사용가능한 씬의 깊이를 필요로 할 때 사용됩니다 (예를 들어, 부드러운 입자들, 스크린 공간 주변의 흡착 그리고 반투명성 모두는 씬의 깊이를 필요로 합니다). 깊이 텍스쳐에서 픽셀 값들은 비선형의 분포를 가지는 0부터 1사이의 값을 가집니다. 정밀도는 사용되는 깊이 버퍼에 따라서 보통 24 또는 16 bit입니다. 깊이 텍스쳐로부터 읽을 때 0과 1 사이의 고도 정밀값이 주어집니다. 사용자가 카메라로 부터의 거리값이 필요할 때 또는 선형 값이 필요할 때 사용자는 그것을 수동적으로 계산해야 합니다. Unity의 깊이 텍스쳐는 다른 플랫폼에서 다르게 구현됩니다. * Direct3D 9 (Windows)에서 깊이 텍스쳐는 본래의 깊이 버퍼이거나 아니면 하나의 채널의 32 비트 소수점 텍스쳐 입니다("R32F" Direct3D format). * 그래픽 카드는 그들이 작동하기 위해서 본래의 깊이 버퍼 (INTZ 포맷) 또는 소수점 포인트 렌더 텍스쳐를 지원해야 합니다. * 깊이 텍스쳐로 그릴 때 [[unity:SL-ShaderPrograms|fragment program]]는 반드시 필요한 값을 결과로 내야 합니다. * 깊이 텍스쳐로 부터 그릴 때 색상의 빨강 컴포넌트는 높은 정밀 값을 포함합니다. * OpenGL (Mac OS X)에서 깊이 텍스쳐는 본래의 OpenGL 깊이 텍스쳐입니다(see [[http://www.opengl.org/registry/specs/ARB/depth_texture.txt|ARB_depth_texture]]를 살펴보시기 바랍니다). * 그래픽 카드는 반드시OpenGL 1.4 또는[[http://www.opengl.org/registry/specs/ARB/depth_texture.txt|ARB_depth_texture]] 확장형을 지원해야 합니다. * 깊이 텍스쳐는 표현되는 Z 버터 내용과 관련이 있습니다. 그것은 조각 프로그램으로부터의 결과를 사용하_지 않_습니다. =====Using depth texture helper macros===== 대부분의 시간에 깊이 텍스쳐는 카메라로 부터의 깊이를 표현하기 위해 사용됩니다. ''UnityCG.cginc'' helper include 파일은 이런 경우에 위의 복잡함을 처리하기 위해 몇몇의 매크로를 포함합니다: * //UNITY_TRANSFER_DEPTH(o)//: 꼭지점의 눈의 공간 깊이를 계산하고 그것을 //o// (float2이어야만 합니다) 안에서 결과값을 냅니다. 깊이 텍스쳐로 렌더링할 때 정점 프로그램에서 그것을 사용합니다. OpenGL에서 이 매크로는 Z 버퍼 값이 절대적으로 렌더되기 때문에 아무것도 하지 않습니다. * //UNITY_OUTPUT_DEPTH(i)//: 눈의 공간 깊이를 //i// 로부터 리턴합니다 (float2이어야만 합니다). 깊이 텍스쳐로 렌더링할 때 조각 프로그램에서 그것을 사용합니다. OpenGL에서 이 매크로는 Z 버퍼 값이 절대적으로 렌더되기 때문에 아무것도 하지 않습니다. * //COMPUTE_EYEDEPTH(i)//: 꼭지점의 눈의 공간 깊이를 계산하고 그것을 //o// 안에서 결과값을 냅니다. 깊이 텍스쳐로 렌더링_하지 않_을 때 정점 프로그램 안에서 그것을 사용합니다. * //DECODE_EYEDEPTH(i)//: 깊이 텍스쳐 //i//로부터 높은 정밀값이 주어지면 해당 눈의 공간 깊이를 리턴합니다. 이 매크로는 //i*FarPlane// on Direct3D을 리턴합니다. OpenGL에서 그것은 카메라의 범위를 매치하는 값을 선형화하고 확장합니다. 예를 들어 이 쉐이더는 물체의 깊이를 렌더합니다: <file csharp> Shader "Render Depth" { SubShader { Tags { "RenderType"="Opaque" } Pass { Fog { Mode Off } CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct v2f { float4 pos : SV_POSITION; float2 depth : TEXCOORD0; }; v2f vert (appdata_base v) { v2f o; o.pos = mul (UNITY_MATRIX_MVP, v.vertex); UNITY_TRANSFER_DEPTH(o.depth); return o; } half4 frag(v2f i) : COLOR { UNITY_OUTPUT_DEPTH(i.depth); } ENDCG } } }</file> ======iOS!====== >>ios<< 이 특성은 iOS 타겟을 위해서 지원되지 않습니다. ======Android!====== >>android<< 이 특성은Android 타겟을 위해서 지원되지 않습니다. {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.SL-DepthTextures|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
유니티3D ( Unity3D )
Advanced ShaderLab topics
Camera's Depth Texture
Reference Manual
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain
companion
[장비 분실]
crashed_vertibird
brotherhood_t-51b_power_armor
marco
i_forgot_to_remember_to_forget
cateye