개발 노트 [VisualShock] Render Pipeline 2015/03/31 02:04 by cagetu

텍스쳐 라이브러리를 붙여서 간단하게 텍스쳐를 읽을 수 있어서 삼각형에 텍스쳐 렌더링할 수가 있게 되었다. 물론, 아직 리소스 로딩 관련해서는 작업이 되어 있지 않기 때문에, 쓰레드로 로딩을 한다거나, 텍스쳐 관리를 어떻게 한다는 것에 대해서는 정리를 해야 할 듯 하다.

2D Dynamic Lighting을 테스트해보고 있는데, 노말맵이 필요해서 PowerVR 텍스쳐 툴에서 노말을 뽑아서 사용해보았다가 영 결과가 이상하게 나와서, Sprite illuminator 를 샘플로 받아서 해보았더니, 이건 엄청 좋다. 테스트 해보니 2D에서만 필요한 단순화된 기능이 필요한데, 이게 꽤 그런 Needs를 잘 캐치한 듯 하다. 특히, 2D에서는 Height Map을 만들고, 그 결과로 노말맵을 뽑아서 사용하는 것이 고려되어야 하는데, 그 부분이 가장 잘 처리되어 있는 듯 하다. 결과적으로 이 툴을 사용하거나, 노말맵을 생성해주는 툴을 만들어야 할 듯... 

이것과 더불어서 후처리로 라이팅을 하는 방식을 테스트((간단하게 요약하면 2D판 Light Pre Pass 렌더링 같은 개념이다) 해보려고 하는데, 사전 작업으로 후처리 렌더링을 위해서 사용했던 데이터 기반 렌더링 파이프라인이 사용해본 결과 만족했었기 때문에 이번에도 사용하려고 한다. (약간 정리해서...)

<TO DO 목록>

[렌더링 파이프라인]
1. 렌더 타겟
2. 렌더 패스 / 렌더 파이프라인

[노말맵 생성 테스트]
1. 텍스쳐에서 Height map 뽑기
2. Height map으로 노말맵 뽑기

[2D Light Prepass 렌더링]
1. 장면 깊이맵 뽑기 (흰색으로만)
2. 블러
3. 노말맵 만들기
4. 노말맵 기반으로 스크린 기반 라이팅
5. 장면과 합성

[라이팅 테스트]
1. 기본 라이팅
2. 림 라이팅

/////

부족하지만, 일단 셰이더를 붙였고, 렌더 타겟을 통한 렌더링도 테스트가 되었다. 물론, 실제로 렌더 패스와 렌더 파이프라인을 구축은 되지 않았지만, 어느 정도는 방향성이 생긴 듯...

고민하고 있는 부분은 RenderPass 때문인데, 이전에는 RenderPass 클래스 내부에 모든 기능을 전부 때려 넣었었는데, 이게 좀 확장성이 떨어지는 면이 있어서, 상속을 통해서 Pass를 구현해볼까 라고 생각이 들기도 하고, 그러자니 굳이 이렇게 해야 하나? 라는 생각에 좀 고민하게 되기도 한다.

컴포넌트 형태의 모습이 되어야 좀 효율이 높아질 것 같기도 한데, 이 부분을 좀 더 생각을 해봐야 할 듯..




핑백

  • CrazyXIII : vulkan renderpass 2019-05-07 07:30:55 #

    ... 용은 아니지만, renderpass를 구성하다보니 결국 renderpipeline 을 어떻게 구성하는지에 대한 내용과 동일하게 적용되는 듯 하다. 이전에 만들어봤던 RenderPipeline 내용하다고 사실 비슷하다. 단, Vulkan에서는 RenderPass가 사실 하나의 Frame에 대한 전체 패스에 대한 정의하고 SubPass를 ... more

덧글

댓글 입력 영역



메모장

내가 먼 훗날에 이 글들을 보았을 때, 좋은 추억이 될 수 있기를...

나를 위해... 나에게 쓰는...

msn: cagetu@hotmail.com
mail: cagetu79@gmail.com
twitter: twitter.com/cagetu
facebook: facebook.com/cagetu