서피스셰이더프로그램 셰이더개발을쉽게! Thursday, April 12, 12

Similar documents
untitled

Microsoft Word - Cg Shader Programming.doc

유니 앞부속

K&R2 Reference Manual 번역본

Microsoft PowerPoint - NV40_Korea_KR_2.ppt

Microsoft PowerPoint - lecture17-ch8.ppt [호환 모드]

Łø·ŸÕ=¤ ¬ ÇX±xÒ¸ 06 - Èpº– 1

Microsoft PowerPoint - lecture15-ch6.ppt

Ⅱ. Embedded GPU 모바일 프로세서의 발전방향은 저전력 고성능 컴퓨팅이다. 이 러한 목표를 달성하기 위해서 모바일 프로세서 기술은 멀티코 어 형태로 발전해 가고 있다. 예를 들어 NVIDIA의 최신 응용프 로세서인 Tegra3의 경우 쿼드코어 ARM Corte

R201-2_3_박창현_언리얼 엔진 4 모바일 렌더링 개요

Microsoft PowerPoint - lecture16-ch6

Microsoft PowerPoint - GameProgramming23-PixelShader.ppt

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

Microsoft PowerPoint - lecture19-ch8.ppt

K_R9000PRO_101.pdf

[ReadyToCameral]RUF¹öÆÛ(CSTA02-29).hwp

ShaderX2: DirectX 9 셰이더 프로그래밍 팁 & 트릭

Microsoft PowerPoint - lecture3-ch2.ppt [호환 모드]

Microsoft PowerPoint - Practical performance_KR_3.ppt

초판 1쇄 발행 2013년 10월 25일 지은이 박승제 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제 호 주소 경기도 파주시 문발동 파주출판도시 뮤즈빌딩 403호 전화 / 팩스

PowerPoint 프레젠테이션

2005CG01.PDF

C++-¿Ïº®Çؼ³10Àå

63-69±è´ë¿µ

Overview OSG Building a Scene Graph 2008 년여름 박경신 Rendering States StateSet Attribute & Modes Texture Mapping Light Materials File I/O NodeKits Text 2

슬라이드 1

2014밝고고운동요부르기-수정3

2005프로그램표지

DioPen 6.0 사용 설명서

PowerPoint Presentation

1학년-방학활용.hwp

서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (1/9) [CSE4170: 기초컴퓨터그래픽스 ] 기말고사 담당교수 : 임인성 답은연습지가아니라답안지에기술할것. 답안지공간이부족할경우, 답안지뒷면에기술하고, 해당답안지칸에그사실을명기할것. 연습지는수거하

매력적인 맥/iOS 개발 환경 그림 A-1 변경 사항 확인창 Validate Setting... 항목을 고르면 된다. 프로젝트 편집기를 선택했을 때 화면 아 래쪽에 있는 동일한 Validate Settings... 버튼을 클릭해도 된다. 이슈 내비게이터 목록에서 변경할

3D MAX + WEEK 9 Hansung Univ. Interior Design

(Microsoft PowerPoint - ADEFNJKEPXSQ.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint 프레젠테이션

슬라이드 1

Orcad Capture 9.x

Microsoft PowerPoint - GameDesign6-Graphics.ppt [호환 모드]

Week3

untitled

서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (2/8) 다음과같이설정되어있는데, cam.pos[0] = 0.0, cam.pos[1] = 0.0, cam.pos[2] = 500.0; 이때의 cam.naxis[] 벡터의세원소값을기술하라. Figure

슬라이드 1

Microsoft PowerPoint - 13prac.pptx

歯Lecture2.PDF

서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (1/10) [CSE4170: 기초컴퓨터그래픽스 ] 기말고사 담당교수 : 임인성 답은연습지가아니라답안지에기술할것. 답안지공간이부족할경우, 답안지뒷면에기술하고, 해당답안지칸에그사실을명기할것. 연습지는수거

19_9_767.hwp

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint - Next generation Shading&Rendering_KR_4.ppt

<C7A5C1F65FC0FCB8E95F31502E6169>

Lab10

MAX+plus II Getting Started - 무작정따라하기

Microsoft Word - cg07-final.doc

<4D F736F F F696E74202D204B FC7C1B7CEB1D7B7A55F436F6E736F6C D6520B0B3B9DFBFA120C0AFBFEBC7D120B9E6B9FD5FC0CCC1F

WebGL 레슨 5 - 텍스쳐에 대하여

3 : OpenCL Embedded GPU (Seung Heon Kang et al. : Parallelization of Feature Detection and Panorama Image Generation using OpenCL and Embedded GPU). e


PowerPoint 프레젠테이션

(Microsoft PowerPoint - \301\24608\260\255 - \261\244\277\370\260\372 \300\347\301\372)

Microsoft PowerPoint - gpgpu_proximity.ppt

A 0 D5-a (XQD Card Type) D5-b (CF Card Type)

< BFA9B7D0BAEAB8AEC7CE31382E20C1A634C2F7B4EBBCB1C6D0B3CEC1B6BBE72E E31312E32382E687770>

10김묘선

04_오픈지엘API.key

언리얼엔진4_내지_ indd

PowerPoint 프레젠테이션

01이국세_ok.hwp

UNIST_교원 홈페이지 관리자_Manual_V1.0

초보자를 위한 C# 21일 완성


untitled

BMP 파일 처리

chap10.PDF

01 EDITOR S PICK: 068_ _069

,. 3D 2D 3D. 3D. 3D.. 3D 90. Ross. Ross [1]. T. Okino MTD(modified time difference) [2], Y. Matsumoto (motion parallax) [3]. [4], [5,6,7,8] D/3

슬라이드 1


<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

VZ94-한글매뉴얼

Chap 6: Graphs

0311 Cube PPT_최종.pdf

DCR-HC15

Output file

AMP는 어떻게 빠른 성능을 내나.key

Title slide option A: Main title can extend over one or two lines


VOL /2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

PRO1_02E [읽기 전용]

2011년 10월 초판 c 2011 Sony Corporation. All rights reserved. 서면 허가 없이 전체 또는 일부를 복제하는 것을 금합니다. 기능 및 규격은 통보 없이 변경될 수 있습니다. Sony와 Sony 로고는 Sony의 상표입니다. G L

歯엑셀모델링

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63130B0AD202D20C1F6C7FCB0FA20C7CFB4C3C0C720B7BBB4F5B8B5>

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint D View Class.pptx

PowerPoint 프레젠테이션

1 Nov-03 CST MICROWAVE STUDIO Microstrip Parameter sweeping Tutorial Computer Simulation Technology

Microsoft PowerPoint - Unity 3D

UI TASK & KEY EVENT

Microsoft PowerPoint - 08_(C_Programming)_(Korean)_Preprocessing

Transcription:

서피스셰이더프로그램 셰이더개발을쉽게!

유니티렌더링시스템소개 렌더링패스 셰이더랩 서피스셰이더 데모 2

유니티렌더링시스템 3

Deferred Lighting Rendering Path Dual Lightmapping Post Effect Processing Realtime Shadow LightProbe Directional Lightmapping HDR Gamma Space DirectX11 support with Nvidia ( 개발중 ) 4

3.0 렌더링기능 디퍼드라이팅렌더링패스 라이트매핑솔루션탑재 실시간그림자 듀얼라이트매핑 5

6

7

8

3.5 렌더링기능 9

10

11

디렉셔널 라이트맵 스페큘러 하이라이트 노멀맵 12

13

렌더링패스 14

(Rendering Path) Vertex Lit Forward Rendering Deferred Lighting 15

Vertex Lit Rendering Path 정점에서만빛의계산을수행 빠르다. 하드웨어호환성이높다 VertexLit Forward Rendering Per-Pixel 에관련된기능은사용불가능 그림자 노멀맵 쿠키 높은디테일의스페큘러하이라이트 VertexLit Forward Rendering 16

Forward Rendering Path Important Per Pixel Rendering Not Important Vertex Lit Spherical Harmonics ForwardBase Pass ForwardAdd Pass Directional Light Vertex Lit Spherical Harmonics Per Pixel Light 17

Forward Pass Renderer All Important All Auto Per Pixel Count : 4 All Not Important Per Pixel Count : 1 18

Deferred Lighting Rendering Path Forward Rendering All Important Deferred Lighting All Important Deferred Lighting All Not Important 19

Deferred Lighting Process PrePassBase PrePassLighting PrePassFinal ARGB32 렌더텍스쳐 Z Buffer ARGB32 렌더텍스쳐 라이팅모델 사용자함수최종결과 20

Deferred Rendering Path Scene View 21

Deferred Rendering Path - Step1 PrePassBase G Buffer ViewSpace Normal Depth Buffer 22

Deferred Rendering Path - Step2 PrePassLighting LightBuffer +SpotLight +PointLight 23

Deferred Rendering Path - Final PrePassFinal Screenshots from Interstellar Marines http://interstellarmarines.com 24

셰이더랩 25

HLSL DirectX GLSL OpenGL GLSL OpenGL/ES HLSL DirectX Cg OpenGL Cg ShaderLab 26

셰이더파일 Shader "MyShader" { Properties { _MyTexture ("My Texture", 2D) = "white" { } } SubShader { } } 유니티에디터 유니티플레이어 Compile Platform Build Platform Shader 27

프로퍼티서브셰이더태그렌더큐설정등.. 패스 렌더스테이트지정 Culling Depth Alpha Blending 셰이더함수 Vertex Function Fragment Function 28

속성 (Properties ) 에디터와셰이더의연결 Properties { _Color ("Main Color", Color) = (1,1,1,1) _Shininess ("Shininess", Range (0.03, 1)) = 0.078125 _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {} _ShadeRange("Shading Range",Float) = 0.02... } 다양한컨트롤 29

(SubShader) SubShader { // } SubShader { // } FallBack "VertexLit" SubShader ( Main ) SubShader ( Sub ) FallBack 30

(Tag) Overlay Transparent 4000 Geometry 3000 Background 2000 1000 Tags {"Queue" = "Transparent+1" } or material.renderqueue = 3001; 31

(Pass) 설정 Name Tag 렌더스테이트 Culling Depth Alpha Blending 셰이더코드 Fixed Function Program Vertex and Fragment Program Surface Shader Program 32

Fixed Function Program 33

Fixed Function Program 예시 Shader "Fixed Function Shader" { Properties { _Color ("Main Color", Color) = (1,1,1,0) _SpecColor ("Spec Color", Color) = (1,1,1,1) _Emission ("Emmisive Color", Color) = (0,0,0,0) _Shininess ("Shininess", Range (0.01, 1)) = 0.7 _MainTex ("Base (RGB)", 2D) = "white" {} _BlendTex ("Alpha Blended (RGBA) ", 2D) = "white" {} } SubShader { Pass { Material { Diffuse [_Color] Ambient [_Color] Shininess [_Shininess] Specular [_SpecColor] Emission [_Emission] } Lighting On SeparateSpecular On SetTexture [_MainTex] { combine previous * texture } } } } SetTexture [_BlendTex] { combine previous lerp (texture) texture } 34

Vertex / Fragment Program 35

Vertex/Fragment Shader 예시 GLSL 프로그램 CG 프로그램 Shader "GLSL shader" { SubShader { Pass { GLSLPROGRAM #ifdef VERTEX void main() { gl_position = gl_modelviewprojectionmatrix * gl_vertex; } #endif #ifdef FRAGMENT void main() { gl_fragcolor = vec4(1.0, 0.0, 0.0, 1.0); } #endif ENDGLSL } } } Shader "Cg shader" { SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag float4 vert(float4 invert : POSITION) : SV_POSITION { float4 outvert = mul (UNITY_MATRIX_MVP, invert); return outvert; } } } } half4 frag(float4 i) : COLOR { return half4(1.0, 0.0, 0.0, 1.0); } ENDCG 36

서피스셰이더프로그램 37

Platform D3D9 OpenGL OpenGL ES Flash Keyword VERTEXLIGHT SHADOW LIGHTING HDR COOKIE LIGHTMAP Diffuse Shader #ifdef LIGHTMAP_OFF c = LightingLambert (o, IN.lightDir, atten); #endif // LIGHTMAP_OFF #ifdef LIGHTMAP_OFF c.rgb += o.albedo * IN.vlight; #endif // LIGHTMAP_OFF #ifndef LIGHTMAP_OFF 38

Fragment Logic Editor Setting ex) Lightmap Surface Lighting Auto Generation Fragment Function 39

정점셰이더 프래그먼트 ( 픽셀 ) 셰이더 Vertex Function Surface Function Lighting Function Lightmap Composition FinalColor Function 최종결과 Position Normal Color Tangent Diffuse Normal Emission Gloss Specular Alpha Clip Lighting Color 40

서피스셰이더프로그램 버텍스프래그먼트프로그램 CGPROGRAM #pragma surface surf Lambert sampler2d _MainTex; struct Input { float2 uv_maintex; }; void surf (Input IN, inout SurfaceOutput o) { half4 c = tex2d (_MainTex, IN.uv_MainTex); o.albedo = c.rgb; o.alpha = c.a; } ENDCG v2f_surf vert_surf (appdata_full v) { v2f_surf o; o.pos = mul (UNITY_MATRIX_MVP, v.vertex); o.pack0.xy = TRANSFORM_TEX(v.texcoord, _MainTex); #ifndef LIGHTMAP_OFF o.lmap.xy = v.texcoord1.xy * unity_lightmapst.xy + unity_lightmapst.zw; #endif float3 worldn = mul((float3x3)_object2world, SCALED_NORMAL); #ifdef LIGHTMAP_OFF o.normal = worldn; #endif #ifdef LIGHTMAP_OFF float3 shlight = ShadeSH9 (float4(worldn,1.0)); o.vlight = shlight; #ifdef VERTEXLIGHT_ON... 15 Lines 132 Lines 41

Chicken Shader Bundle 42

Fixed Function Program Vertex Fragment Program Surface Shader Program Vertex Lit Rendering Path O Forward Rendering Path O O Deferred Lighting Rendering Path O 43

44

45

데모 46

개발자들을위한팁 #pragma debug 47

Q&A 48