1. 새 프로젝트 (LearnShader) 생성

 

2. 필요한 Shader Resources 패키지 임포트

 

3. Materials와 Shaders 폴더 생성 후, Material과 Surface Shader를 하나씩 생성.

 

4. Material에 SurfaceShader를 드래그 앤 드롭으로 적용

 

5. 테스트 할 오브젝트(Sphere) 생성
6. 오브젝트(Sphere)의 Mesh Renderer에 생성한 Material 넣어주기
7. NewSurfaceShader를 더블클릭
8. 비주얼 스튜디오가 실행
9. 해당 부분에서

 

10. 다음과 같이 변경 후, 저장
11. 프로젝트 내 Sphere Shader 변경 확인

 

12. 경로도 다음과 같이 변경된다.

 

13. 해당 부분 제거(GPU 인스턴싱 기능)
13. NewSurfaceShader파일을 다음과 같이 수정하면

 

14. 그럼 다음과 같은 오류가 나는데

 

15. 해당 부분에 1개 이상의 멤버가 있어야 한다.

 

16. 따라서 쉐이더(Shader) 스크립트의 기본 구조 확인

 

17. 다음과 같이 코드 수정

 

18. 코드에 따른 Inspector 창 확인

 

 

 

_Darkness ("Darkness", Range(0, 100)) = 0 // 0부터 100 사이의 값으로 조절할 수 있는 프로퍼티.
        _Bright ("Bright", Range(-1.0, 1.0)) = 1 //  -1.0부터 1.0 사이의 값으로 조절할 수 있는 프로퍼티.
        _PowerOfNumber("Power Of Number", Integer) = 3 // 정수를 설정할 수 있는 프로퍼티. (현재 3)
        _Intensity("Intensity", Float) = 1.0 //  소수점 값으로 설정할 수 있는 프로퍼티.
        _Color ("Color", Color) = (1.0, 1.0, 1.0, 1.0) // 색상을 RGBA 형태로 설정할 수 있는 프로퍼티.
        _Vector ("Vector", Vector) = (1.0, 2.0, 3.0, 4.0) // 벡터 값을 설정할 수 있는 프로퍼티.
        _MyTexture2D ("My Texture 2D", 2D) = "white" {} // 2D 텍스처를 설정할 수 있는 프로퍼티.
        _MyTexture3D ("My Texture 3D", 3D) = "white" {} // 3D 텍스처를 설정할 수 있는 프로퍼티.
        _MyTextureCube ("My Texture Cube", Cube) = "white" {} // 큐브맵 텍스처를 설정할 수 있는 프로퍼티.

 

 

19. o.Albedo의 값을 (0,0,0)으로 수정

 

29. Sphere가 검정색(0,0,0)으로 변한것을 확인

 

26. Window - Lighting - Rendering의 Environment Reflections - Source를 Skybox -> Custom으로 변경

 

27. o.Emission으로 코드 수정
28. 빨간 형광색? 으로 바뀐 모습


    

o.Albedo = fixed3(1,0,0); // 표면 색상을 순수한 빨간색으로 설정
o.Emission = half3(1, 0, 0); // 표면에서 빨간색 빛을 방출하도록 설정

 

 

프로퍼티에 있는 변수명과 동일하게 정의하면

프로퍼티에 정의 되어 있는 변수의 값이 자동으로 할당된다.

 

반응형

+ Recent posts