개발/Shader
-
이번 포스팅에선 앞서 말씀드린 대로 Zhen Geng 님의 Snow Footprint 포스팅과 소스를 분석 할 것 입니다.(Zhen Geng님 (이하 저자)의 본 포스팅은 다음 링크에서 확인 하실 수 있습니다 : http://zhengeng.net/snow-footprint)해당 포스팅의 저자는 기존 Decal, Normal Map 등의 방법을 통한 발자국을 표시하는 방법은 현실과의 이질감을 주어, 사용자의 몰입을 방해 할 수 있다고 생각했습니다. 그래서 그는 Tessellator를 통해 실제로 바닥과 발자국이 상호작용을 할 수 있게 만들고 싶어했고, 그 과정에서 다음과 같은 문제에 직면했습니다.1. 모든 지형을 덮을 만큼 큰 텍스쳐와 displacement map을 실시간으로 색칠하는 것도 하나의 간단..
[Snow Footprint] 04.프로젝트 분석 (完)이번 포스팅에선 앞서 말씀드린 대로 Zhen Geng 님의 Snow Footprint 포스팅과 소스를 분석 할 것 입니다.(Zhen Geng님 (이하 저자)의 본 포스팅은 다음 링크에서 확인 하실 수 있습니다 : http://zhengeng.net/snow-footprint)해당 포스팅의 저자는 기존 Decal, Normal Map 등의 방법을 통한 발자국을 표시하는 방법은 현실과의 이질감을 주어, 사용자의 몰입을 방해 할 수 있다고 생각했습니다. 그래서 그는 Tessellator를 통해 실제로 바닥과 발자국이 상호작용을 할 수 있게 만들고 싶어했고, 그 과정에서 다음과 같은 문제에 직면했습니다.1. 모든 지형을 덮을 만큼 큰 텍스쳐와 displacement map을 실시간으로 색칠하는 것도 하나의 간단..
2017.12.25 -
기존 포스팅 01, 02번을 통해 Deformer와 Tessellator의 개념을 익혔습니다.오늘은 그 과정에서 만들었던 Wave Deformer 예제를 Tessellator를 통해 위와 같았던 결과물을위와 같이 보다 완성도 있게 바꾸는 작업에 대해 포스팅해보겠습니다.1. 소스 원문먼저 소스 코드 전체를 보여드린 후 부분 별로 차근차근 설명을 덧 붙이겠습니다. Shader "Custom/WaveDeformer" { Properties { _MainTex ("Texture", 2D) = "white" {} _Amplitude ("Amplitude", Float) = 0 _Frequency ("Frequency", Float) = 0 _Speed ("Speed", Float) = 1 _Anchor ("Anc..
[Snow Footprint] 03.Wave Deformer에 Tessellation 적용기존 포스팅 01, 02번을 통해 Deformer와 Tessellator의 개념을 익혔습니다.오늘은 그 과정에서 만들었던 Wave Deformer 예제를 Tessellator를 통해 위와 같았던 결과물을위와 같이 보다 완성도 있게 바꾸는 작업에 대해 포스팅해보겠습니다.1. 소스 원문먼저 소스 코드 전체를 보여드린 후 부분 별로 차근차근 설명을 덧 붙이겠습니다. Shader "Custom/WaveDeformer" { Properties { _MainTex ("Texture", 2D) = "white" {} _Amplitude ("Amplitude", Float) = 0 _Frequency ("Frequency", Float) = 0 _Speed ("Speed", Float) = 1 _Anchor ("Anc..
2017.12.21 -
이번 포스팅은 저번 포스팅에 이어 Tessellator Stage에 대한 이야기를 해볼까 합니다.이전에 Hull Shader Stage에서 폴리곤을 어떤 기준으로 그리고 얼마나 분할 할 것인가를 정했습니다.Tessellator Stage에서는 이 결과를 Input으로 받아 Domain Shader에서 사용할 '무게중심'을 계산합니다.하지만 이 스테이지는 프로그래머가 제어 할 수 없는 영역이기 때문에, 이 계산과정에 대한 설명만을 설명 한 뒤 이번 포스팅은 넘어가도록 하겠습니다. 1. 무게중심좌표무게중심좌표를 구하는 방법은 다양합니다. Vertex Averaging을 통해 나온 결과도 무게 중심좌표이지만 지금 설명하려는 방법으로도 구할 수 있습니다.설명에 앞서 다음과 같은 외적의 기하학적 의미를 알고 있어..
[Snow Footprint] 02.Tessellator - 02 (Tessellator and Domain Stage)이번 포스팅은 저번 포스팅에 이어 Tessellator Stage에 대한 이야기를 해볼까 합니다.이전에 Hull Shader Stage에서 폴리곤을 어떤 기준으로 그리고 얼마나 분할 할 것인가를 정했습니다.Tessellator Stage에서는 이 결과를 Input으로 받아 Domain Shader에서 사용할 '무게중심'을 계산합니다.하지만 이 스테이지는 프로그래머가 제어 할 수 없는 영역이기 때문에, 이 계산과정에 대한 설명만을 설명 한 뒤 이번 포스팅은 넘어가도록 하겠습니다. 1. 무게중심좌표무게중심좌표를 구하는 방법은 다양합니다. Vertex Averaging을 통해 나온 결과도 무게 중심좌표이지만 지금 설명하려는 방법으로도 구할 수 있습니다.설명에 앞서 다음과 같은 외적의 기하학적 의미를 알고 있어..
2017.12.16 -
저번 포스팅에선 Wave Deformer 예시를 갖고 Deformer 연산에 대한 이해와 비선형 Deform 작업에서 Normal을 구하는 방법 두 가지 (J Matrix, 근사수치기법)에 대해 공부했습니다. 이번 포스팅에선 저번 예제에서 보였던 각진 물결을 보다 부드럽게 만들기 위해 Tessellation 기술에 대한 전반적인 지식을 익혀 볼 것 입니다. 이런 지식을 익힌 후 기존 예제를 보강하는 방식으로 포스팅이 진행 될 것입니다. 1. Tessellation이란? MSDN에서는 Tessellation을 다음과 같이 설명했습니다. "GPU를 통해 low-detail subdivision surface를 high-detail subdivision surface로 변환해주는 작업을 Tessellation..
[Snow Footprint] 02.Tessellator - 01 (Hull-Shader)저번 포스팅에선 Wave Deformer 예시를 갖고 Deformer 연산에 대한 이해와 비선형 Deform 작업에서 Normal을 구하는 방법 두 가지 (J Matrix, 근사수치기법)에 대해 공부했습니다. 이번 포스팅에선 저번 예제에서 보였던 각진 물결을 보다 부드럽게 만들기 위해 Tessellation 기술에 대한 전반적인 지식을 익혀 볼 것 입니다. 이런 지식을 익힌 후 기존 예제를 보강하는 방식으로 포스팅이 진행 될 것입니다. 1. Tessellation이란? MSDN에서는 Tessellation을 다음과 같이 설명했습니다. "GPU를 통해 low-detail subdivision surface를 high-detail subdivision surface로 변환해주는 작업을 Tessellation..
2017.12.16 -
12월 공부 리스트인 중 하나인 Snow Footprint 프로젝트 분석을 위한 기초 공부 자료입니다. 본 포스팅은 http://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch42.html 의 내용을 번역 및 실습하며 이루어집니다. 1. 디포머란?A. 명시적 정의 : 정점들의 집합을 연산했을 때 이 기존 정점들의 집합이 새로운 좌표를 가질 수 있도록 하는 연산자를 Deformer라고 한다. i. 조건 : 1. Deformer에 의해 새로운 Vertex나 Edge가 생기면 안됩니다.2. Deformer에 의해 변형된 정점은 다른 정점의 변화과정을 통해 영향을 받으면 안됩니다.A. 위 규칙을 어기는 예 : i. Vertex Averaging : 주어..
[Game Jams] [Snow Footprint] 01. Deformer12월 공부 리스트인 중 하나인 Snow Footprint 프로젝트 분석을 위한 기초 공부 자료입니다. 본 포스팅은 http://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch42.html 의 내용을 번역 및 실습하며 이루어집니다. 1. 디포머란?A. 명시적 정의 : 정점들의 집합을 연산했을 때 이 기존 정점들의 집합이 새로운 좌표를 가질 수 있도록 하는 연산자를 Deformer라고 한다. i. 조건 : 1. Deformer에 의해 새로운 Vertex나 Edge가 생기면 안됩니다.2. Deformer에 의해 변형된 정점은 다른 정점의 변화과정을 통해 영향을 받으면 안됩니다.A. 위 규칙을 어기는 예 : i. Vertex Averaging : 주어..
2017.12.09 -
[Unity PBR] Standard Shader의 제질에 따른 Albedo Color 2017.12.08