Loading...

early z

Early Z : - Z Test(Depth Test, 깊이 판정)를 미리 해서 비싼 Pixel연산을 피하자- 일종의 픽셀단위 Culling 기법. Z Test :- 깊이 판정은 픽셀의 깊이 값을 깊이 버퍼의 깊이 값과 비교해서 픽셀의 가시성을 판단한다.- 현재 픽셀이 다른 픽셀의 뒤에 있는지를 판단하여 뒤에 있다면 픽셀을 폐기하고, 앞에 있다면 그 픽셀을 다음 단계로 넘겨 값을 z버퍼에 기록한다. 그렇다면 기존 Z Test의 순서는?- 간단하게 말하자면 pixel shader(fragment shader) 다음. 자세하게 말하자면 파이프 라인 참고.- 왜 깊이판정을 ps 이후로 했을까?- ps 연산에 따라 depth가 변경될 수 있기 때문에 ps 앞에서 하지 않음. Early Z를 위해서는?- 기존 하..

2018. 7. 21. 13:06

shadertoy 시작하기.

shader 테스트를 위해 rendermonkey를 주로 쓰다가 shadertoy라는걸 알게되서 편한듯해서 살짝 테스트해볼겸.. 처음 시작하면 아래와 같은 화면이다. 오른쪽에 코딩하고 "alt + enter" 하면 갱신된다. 간단하고 참 좋네. uv좌표를 테스트 해 보자면 왼쪽 아래가 (0,0)이고 오른쪽 위가 (1,1)이다. dx는 반대로 왼쪽위가 0,0이고 오른쪽 아래가 1,1이다. 작업할때 꼭 확인해줘야 한다. 참고 : UV Texture Coordinates and Texture Mapping - OpenGL / DirectX 1 : 코드에서 사용하는 iResolution값 2 : 스크립트 추가 3 : 제공하는 전역변수 4 : 채널값 위와같이 length함수로도 간단히 테스트 해 볼수 있다. le..

2018. 7. 20. 11:59

hlod

원문 : http://www.cs.unc.edu/~walk/hlod/원문의 내용을 필요부분 번역하였습니다.원문을 보길 강력추천합니다. 그림 1. Double Eagle 대형선박. 이 모델은 126,630개 오브젝트, 그리고 82,361,612 삼각형으로 구성되어 있다. 전통적인 LOD 방식으로는 한번에 하나의 객체만 단순화 할 수 있다.그래서 여러 객체를 포함하는 화면이 주어지면 이 방식은 장면 전체가 아닌개별 객체에 대해서만 에러를 최소화 할 수 있다.HLOD(Hierarchical Level Detail, 계층적 lod)는 전통적인 방식의 LOD를 오브젝트의 계층적 집합체로 일반화 하는 것이다.장면의 개별 부분을 같이 단순화 하는 HLOD를 생성하여, 특히 적극적인 단순화를 위해좀 더 괜찮은 전역 근..

What is Texture

What is Texture란 글을 쓰게 된 이유는 요즘 게임을 개발하다 보니,Texture을 정말 다양한 용도로, 그리고 다양한 방법으로 쓰게되서Texture에 대해 여러가지로 정리하는 시작점을 가지고 싶었기 때문이다. Texture란 무었인가?이 질문에 나름 모범적인 대답은 아래와 같다.3d 그래픽에서 폴리곤에 다양한 색상이나 질감을 표현하기 위해 사용되어지는 2D 이미지게임에서 사용되는 텍스쳐는 내가 생각에는 데이터를 저장하는 storage 라고 생각한다.Texture에는 폴리곤에 색상이나 질감을 표현하기 위해 많이 사용하기도 하지만, 다른 용도로도 쓸 수 있기 때문이다.화면톤을 위해 사용할 수도 있고, 계산하기 복잡한 특정 수치값들을 미리 저장해서 쓸수도 있다. 그래서 텍스쳐란 무었인가? 와 무었..

texture format

texture에는 file format 이 있고 pixel format이 있다.파일 포멧이야 파일의 확장자를 보면 알수 있고 이 파일들 마다 독특한 성질을 가지고 있다.몇가지 예를 들어 보면 tga, bmp, jpeg, png, dds, psd, gif, etc... 가 있다.각각 데이터의 압축, 압축시 손실유무, 특정 픽셀포멧 지원여부 등의 기능을 따진다.픽셀포맷은 사용되는 형식에 따라 채널과 비트수, 부호, 부동소수점 등으로 사용된다.아래 링크에서 각 텍스쳐 포멧에 대한 추가적인 내용을 알 수 있다. Reference Link- Difference between floating point render target and normal render target- Floating point texture가..

shader에서 채널값이 모자를 때...

텍스쳐마다 채널이, R/ RG/ RGB/ RGBA 등이 있는데 가끔 채널 하나가 더 필요할 때가 있다.예를들어 R채널에는 Diffuse Mask, G채널에는 Rim Mask, B채널에는 Specular Mask, A채널에는 depth를 넣는데 추가로 offset값을 저장해 줘야 할 때가 있다. 그럴때 가끔 fmod를 사용해서 하나에 두개의 값을 넣게 하는 방법을 쓴 적이 있다.z값(B채널)이 0.0f ~ 1.0f 사이이고 offset 값이 1.0f에서 10.0f 사이라면 z값에 기존값 * 0.01f하고 offset 값을 *0.1f 해서 더한 후 다음 패스에서 이 값을 fmod로 z값을 구한 후기존값에서 빼면 z값만 구할수 있긴 하다. 다만 offset 값이 1.0f~10.0f 조건에 추가로단차가 0.1f..

2018-02-10

벡터, 행렬, 렌더링 파이프라인 간단하게.벡터 : http://mgun.tistory.com/1143행렬 : http://mgun.tistory.com/1363 기존거 복습 : diffuse, specularhttp://mgun.tistory.com/2121 brdf 관련 http://mgun.tistory.com/1304

2018-02-03

1. Texture 관련 what is texture?2. 기본 Lighting 에 대한 이해.http://mgun.tistory.com/8543. 조명모델 http://mgun.tistory.com/1336http://mgun.tistory.com/1337 우선은 언렬의 비쥬얼 노드의 사용법을 익히는걸 목표로 하고따라하기 "쉬운 언리얼 쉐이더 활용 테크닉" 책으로 연습을.굳이 책 내용을 이해할 필요는 없음. 그냥 비쥬얼 노드의 사용만 익숙해지면 끝.이론보다는 예제 우선으로 툴에 익숙해지고 그 다음에 이건 왜 이럴까로 유도하는게... 다음 강의는 뭘로 할까?사람 : 눈동자, 피부, 머리카락물체 : 금, 판금, 가죽, 벨벳, etc..자연 : 지형, 물, 하늘, 태양, etc..렌더링 방식 : npr 관련..