본문 바로가기

전체 글586

[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.
[Unity/Shader] 파트12-3 : 홀로그램 제작 뷰포트 애니메이션 활성화 방법 핵심 제작법 외곽선 : 내적 줄무늬 : 월드 포지션을 frac한 것에 시간으로 offset을 준 것이다. 코드 Shader "Custom/Part12-1" { Properties { _BumpMap("NormalMap", 2D) = "bump" {} } SubShader { Tags { "RenderType"="Transparent" "Queue" = "Transparent" } // 반투명 재질로 적용 LOD 200 CGPROGRAM // Physically based Standard lighting model, and enable shadows on all light types #pragma surface surf nolight noambient alpha:fade //.. 2023. 8. 17.
[Unity/Shader] 파트12-2 : Rim 라이트 완성 12-1 내용에 이어서 Rim 라이트를 완성한다. 주의할 점은 하나다. 림라이트 계산시 노말을 이용하므로, 노말맵 계산이 이전에 이루어져야한다. 코드 Shader "Custom/Part12-1" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpMap("NormalMap", 2D) = "bump"{} _RimColor("RimColor", Color) = (1,1,1,1) _RimPower("RimPower", Range(1,10)) = 3 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // Physically based Standard lighting model, and en.. 2023. 8. 16.
[Unity/Shader] 파트12-1 : Fresnel 공식 구현 뷰벡터와 노말을 내적한다. 외곽선을 얇게 만들기 위해 제곱한다. 코드 Shader "Custom/Part12-1" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // Physically based Standard lighting model, and enable shadows on all light types #pragma surface surf Lambert noambient // Use shader model 3.0 target, to get nicer looking lighting #pragma target 3.0 sampler2D .. 2023. 8. 16.
[Unreal/Niagara] 나이아가라 프리뷰 배경색 변경 방법 프리뷰 씬 세팅을 아래와 같이 변경한다. 2023. 8. 16.
[Unreal/Niagara] 스프라이트 Facing Mode 고정 (Orient 고정) 방향성 고정 (Facing) - 스프라이트 렌더러 - facing mode : custom facing vector로 설정 - sprite facing and alignment 모듈 추가 방향성, 회전 모두 고정 (Facing, Alignment) - 스프라이터 렌더러 - facing mode : custom facing vector로 설정 - 스프라이터 렌더러 - alignment도 custom alignment 설정 - align sprite to mesh orientation 모듈 추가 참고링크 https://youtu.be/sHe90o1IfdI 위 영상에서는 업데이트에 모듈을 추가했다. 하지만 orient가 계속 변화할게 아니라면 스폰에 넣는 것이 효율적일 것이다. 2023. 8. 16.
[Unity/Shader] 파트11-4 : Lambert 라이트 완성 이전 장에서 밝기만 구현된 것에서, 나머지를 덧붙여 Lambert 라이트를 완성해본다. 코드 Shader "Custom/NewSurfaceShader 1" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _BumpMap ("NormalMap", 2D) = "bump" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM // Physically based Standard lighting model, and enable shadows on all light types #pragma surface surf Test // Use shader model 3.0 target, to get nic.. 2023. 8. 16.
[Unity/Shader] 파트11-3 : Half-Lambert 라이트 연산 Lambert 연산은 음영이 saturate에 의해 딱 끊기는 문제가 있다. 따라서 saturate를 빼고, *0.5 + 0.5 해주어 부드럽게 만드는 것이 전부다. 원리 상 : Lambert 연산 결과 하 : Half-Lambert 연산 결과 좌 : Lambert 연산시 단절되는 느낌의 원인 우 : *0.5 + 0.5로 부드럽게 라이팅이 적용되는 이유 코드 Shader "Custom/NewSurfaceShader 1" { Properties { _MainTex("Albedo (RGB)", 2D) = "white"{} _BumpMap("NormalMap", 2D) = "bump"{} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #prag.. 2023. 8. 15.
[서평] 넛지 선택 설계의 중요성을 알려준다. '넛지'는 이끄는 선택 설계다. '슬러지'는 방해하는 선택 설계다. 이 사소한 설계가 큰 변화를 만든다는 점을 알려준다. 사회뿐만 아니라 개인에게도 환경 설정이 중요하다는 점을 깨닫게 한다. 나는 진정한 노력은 의지로 '밀어붙이기'가 아니라, 자기 자신에게 맞는 '환경 설정'을 하는 것이라 생각한다. 또, 이를 끊임없이 개선해나가는 과정인 것이다. 이에 대한 근거를 제공하는 책이다. 메모 2023. 8. 15.