본문 바로가기

분류 전체보기414

[RSL] Part2 : Divide and Conquer (162p ~ 179p) 수박을 만들어보며 예제 실습해본다. 내용은 이하 파일 참고. 2023. 8. 19.
[RSL] Part2 : Shader Design Methodology (158p ~ 161p) Why Follow a Methodology? (왜 방법론을 따를까요?) 쉐이더 개발은 일반적으로 어렵지 않지만 이전에 구현되지 않은 매우 독특한 해결책을 개발하려고 할 때에 어려움이 있을 수 있습니다. 그런 경우 많은 독자적인 연구, 수학적 계산, 차트 작성 및 테스트가 필요할 수 있습니다. 보통의 쉐이더에서는 이러한 단계 대부분을 건너뛸 수 있지만, 심지어 가장 간단한 쉐이더라도 특정 수준의 계획과 조직이 필요합니다. "쉐이더 작성 과정"이라는 제3장에서 언급한 것처럼, 쉐이더 개발에는 일반적으로 설계 단계가 포함됩니다. 이 단계는 목표가 무엇인지를 알려줍니다. 이 단계가 없으면 어떤 방향으로 나아가야 할지 막막해질 수 있습니다. 방법론은 "무엇을 해야 하는가"가 아니라 "어떻게 해야 하는가"입니다... 2023. 8. 19.
[서평] 나는 직원 없이도 10억 번다 누구든 그 시기가 다를뿐, 독립을 항상 염두해 둘 필요가 있다고 생각한다. 이를 위해 작게 시작하는 법을 알려준다. 메모 2023. 8. 19.
[Unity/Shader] 파트13-5 : Rim 라이트를 이용한 가짜 스펙큘러 만들기 rim을 뒤집은 것을 이용해 가짜 스펙큘러를 만든다. 그러면, 항상 내 시선 방향에 생기는 스펙큘러가 표현된다. 실제 세상에 조명이 하나만 있는 경우는 거의 없기에, 디테일 표현에 유용하다. 코드 Shader "Custom/Part13-2" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpMap ("NormalMap", 2D) = "bump" {} _SpecCol ("Specular Color", Color) = (1,1,1,1) _SpecPow ("Specular Power", Range(10,200)) = 100 _GlossTex ("Gloss Tex", 2D) = "white" {} } SubShader { Tags { "RenderT.. 2023. 8. 19.
[Unity/Shader] 파트13-4 : Rim 라이트를 커스텀 라이트로 옮기기 이전에는 surf 함수에서 연산했다. Specular 공식을 쓰면서 viewDir을 커스텀 라이트 안에서 사용할 수 있게 됐다. 따라서 커스텀 라이트 안에서 처리하도록 옮긴다. 코드 Shader "Custom/Part13-2" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpMap ("NormalMap", 2D) = "bump" {} _SpecCol ("Specular Color", Color) = (1,1,1,1) _SpecPow ("Specular Power", Range(10,200)) = 100 _GlossTex ("Gloss Tex", 2D) = "white" {} // * } SubShader { Tags { "RenderType.. 2023. 8. 19.
[Unity/Shader] 파트13-3 : Gloss 맵으로 스펙큘러 강도 조절하기 이전 코드에 이어서 Gloss 텍스쳐를 프로퍼티에 받아 적용하는 법을 실습한다. 코드 Shader "Custom/Part13-2" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpMap ("NormalMap", 2D) = "bump" {} _SpecCol ("Specular Color", Color) = (1,1,1,1) _SpecPow ("Specular Power", Range(10,200)) = 100 _GlossTex ("Gloss Tex", 2D) = "white" {} // * } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // Physically based Sta.. 2023. 8. 19.
[Unreal/Niagara] 나이아가라 Random Seed 고정법 항상 동일한 결과를 얻고 싶을때 사용한다. 메시 Scale 메시 Orient Fixed Random Seed를 클릭하면 파티클별 랜덤이 아니게 된다. 따라서 모든 파티클이 동일한 orient를 가진다. 2023. 8. 18.
[Unity/Shader] 파트13-2 : Blinn Phong 스펙큘러 만들기 코드 Shader "Custom/Part13-2" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpMap ("NormalMap", 2D) = "bump" {} _SpecCol ("Specular Color", Color) = (1,1,1,1) // _SpecColor라고 쓰면 안된다. 유니티 내장 쉐이더에서 이미 쓰고 있는 용어다. _SpecPow ("Specular Power", Range(10,200)) = 100 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // Physically based Standard lighting model, and enable shadows.. 2023. 8. 18.
[Unity/Shader] 파트13-1 : Blinn Phong 반사 이론 스펙큘러 만들 때 필요한 이론이다. 전통적인 방식은 Phong 반사이다. Phong 반사'뷰벡터로부터 반사된 방향에 라이트가 있으면, 그 부분의 하이라이트가 가장 높다'가 전제다. 뷰벡터를 노말 방향 기준으로 반사하는 반사벡터와, 조명 벡터의 내적으로 스펙큘러가 표현된다. R·L이다.위 공식 계산을 위해서는 R을 구해야한다. V벡터 기반으로 R벡터 계산법은 다음과 같다. R = 2N(L·N) - L 다만, 반사 벡터를 구하기 위해 내적을 한번 더 하는 단점이 있다.Bling Phong 퐁 공식을 간략화한 공식이다. 하프 벡터를 이용하는 공식이다. H·N이다.하프 벡터 구하는 법 길이가 같은 두 벡터를 더하고 노멀라이즈한다. 다음 장에서 실습한다. 2023. 8. 18.