Loading...
2019. 6. 15. 14:55

Clipmaps

원문 : Clipmaps원문을 보시길 적극 추천. 요약클립맵은 지형에 매우 높은 해상도의 텍스쳐를 매핑할수 있게 하는 SGI 워크스테이션에서 처음 구현된 기능이다.원본 SGI 구현은 매우 전문적인 맞춤형 하드웨어가 필요했다.NVIDIA GeForce 8800의 고급기능은 현재 소비자의 하드웨어를 사용하여 같은 알고리즘을 허용한다.비록 현재 API들과 GeForce 8800가 8192 크기의 텍스쳐를 직접적으로 지원할 지라도, 이 크기가 비행 시뮬레이션같은 넓은 경치를 말할때는 충분하지 않을지도 모른다.전체 경치에 하나의 텍스쳐를 사용하는 이 아이디어는 전체 경관 텍스쳐를 한번에 디자일 할 수 있을 뿐 아니라파라미터화 시키는 것도 간단하다.큰 텍스쳐는 몇개의 텍스쳐를 사용하여 블렌딩 하는 기존 방식에 비해..

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. 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. 1. 31. 16:14

depth-precision-visualized

원문을 보시는 것을 추천드립니다. 깊이 정밀도 시각화 깊이 정밀도는 모든 그래픽스 프로그래머가 조만간 고민해 봐야 하는 골칫거리다.많은 아티클과 논문에서 이미 이 주제가 다루어졌고, 서로 다른 게임들, 엔진들,그리고 디바이스들에서 다양한 깊이버퍼 포멧과 설정을 볼 수 있다. 원근투영과의 상호작용하는 방식 때문에 GPU 하드웨어 깊이 매핑은 다소 난해하며방정식을 연구한다고 해서 바로 상황이 명확해 지지는 않는다.어떻게 동작하는지 알기 위해서는 몇장의 그림을 그려보는게 좋다. 이 글은 3개의 메인 파트가 있다.첫번째 파트에서는, 비선형(nonlinear) 깊이 매핑을 하는 이유에 대해 다룬다.두번째 파트에서는, 서로 다른 상황에서 비선형 깊이 매핑이 어떻게 수행되는지 이해를 돕는직관적이며, 시각적인 몇개의 ..

2018. 1. 26. 17:43

디더링 (Dithering)

디더링이란 무었인가?컴퓨터 그래픽스에서 제한된 색을 사용하여 여러 색을 최대한 근사하게 생성하기 위해 사용되는 기술.화상의 각 면을 다른 계조 색의 도트 집합으로 처리하는 기술에 의존한다.결국은 없는 색을 만들기 위해 색을 조밀하게 배합하여 다른색상인 것처럼 보이게 하는 방법.참고 : 앱 개발에 필요한 Image magick 활용 이 기술로 매끄럽지 못하고 계단모양으로 울퉁불퉁한 윤곽선이나 대각선을 완화시킬 수 있다.참조 : wiki, 디더링 이전 방식? 으로는 망점(halftone screen)이 있는데 망점은 점의 크기나 간격에 따라연속 색조의 상을 따라 만드는 복사기법으로 점으로 그라디언트와 같은 효과를 낸다.참조 : wiki, 망점 (halftone screen) Reference Link- wi..