Direct X Shader Programming 3 1 High Level
- Slides: 23
Direct. X Shader Programming 제 3 주차 1. High Level Shader Language 2. 램버트 확산 조명
High Level Shader Language Direct. X의 버전이 높아짐 셰이더 확장 복잡도 증가 High Level Shader Language 등 장
전역 변수의 선언 //전역변수 선언 float 4 x 4 m. MWP; //로컬 좌표 변환 //텍스쳐 texture Tex; // 텍스쳐 정보 sample Samp { Texture = Min. Filter Mip. Filter Address. U }; = sampler_state <Tex>; = LINEAR; Mag. Filter = LINEAR; = NONE; = CLAMP; Address. V = CLAMP;
정점 셰이더 출력용 구조체 struct VS_OUTPUT 다른 용도로도 사용 가능 { float 4 Pos : POSITION float 2 Tex. Coord : TEXCOORD 0 } 시멘틱스 : 출력레지스터에 대응 POSITION o. POS TEXCOORD 0 o. T 0
정점 셰이더 사용 VS_OUTPUT VS( float 4 Pos : POSITION float 2 Tex. Coord : TEXCOORD 0 ){ VS_OUTPUT Out = (VS_OUTPUT) = 0; Out. Pos = mul(Pos, m. WVP); Out. Tex. Coord = Tex; return Out; }
픽셀 셰이더 사용 float 4 PS( VS_OUTPUT In ) : COLOR { return tex 2 D( Samp, In. Tex. Coord ); } Tex 2 D 샘플러에 등록되어 있는 텍스쳐를 읽어옴
테크닉 tenique TShader { pass P 0 { Vertex. Shader = compile vs_1_1 VS(); Pixel. Shader = compile ps_1_1 PS(); } }
Create Effect #1 HRESULT D 3 DXCreate. Effect. From. File( LPDIRECT 3 DDEVICE 9 p. Device, // 디바이스 LPCTSTR p. Src. File, // 이펙트 파일 CONST D 3 DXMACRO * p. Defines, // 전처리기 옵션 (null) LPD 3 DXINCLUDE p. Include, // 옵션인터페이스 (null) DWORD Flags , // D 3 DXSHADER 식별용 LPD 3 DXEFFECTPOOL p. Pool, // 이펙트풀 LPD 3 DXEFFECT * pp. Effect, // 셰이더 변수 LPD 3 DXBUFFER * pp. Compilation. Errors // 에러를 저장할 곳 ); 적색을 제외한 나머지 옵션은 NULL을 넣어주면 OK 함수가 제대로 실행되면 S_OK 가 리턴되고, 아니면 에러넘버가 리턴됨
Create Effect #2 D 3 DXCreate. Effect. From. File로 이펙트를 컴파일 Get. Technique. By. Name() 이펙트 파일 내부의 테크닉 핸들을 얻어옴 Get. Parameter. By. Name() 테크닉 내부의 변수를 얻어옴 Technique = Effect->Get. Technique. By. Name( “TShader”); WVP = Effect->get. Parameter. By. Name(NULL, “m. MVP”);
Rendering From Effect File 이펙트 설정 Effect->Set. Technique( Technique ); Effect->Begin( NULL, 0 ); Effect->Pass (0); 셰이더 상수 설정 D 3 DXMATRIX m = world * view * proj; Effect->Set. Matrix( WVP, &m ); ▪ 어셈 셰이더와 달리 전치행렬을 쓰지 않아도 OK Effect->Set. Texture(“Tex”, Mesh->m_Ptextures[0]); 실제 렌더링 pd 3 d. Device->Set. Vertex. Declaration(m_p. Decl); Mesh->Render(pd 3 d. Device); 렌더링 종료 Effect->End();
- Shader graph 사용법
- High performance shader
- Rcp hlsl
- Shader computer graphics
- Compute shader blur
- Dshaders
- Gooch shader
- Vray toon shader maya
- Kuwahara filter unity
- How do you know where to shade in a quadratic inequality
- Hpse shader
- What is tesselation
- Nvidia slang
- 셰이더 로드 및 컴파일
- Gooch shading model
- Citra post processing shader
- Skybox shader
- Suggesstive
- Packets
- Fragment shading
- Gl_triangles_adjacency
- Geometry shader
- Hull shader
- Next-gen skin shaders