티스토리 뷰

Game/Graphics

Seamless cube map filtering

newpolaris 2017. 12. 29. 00:41

bgfx example converting 하면서 OpenGL을 테스트해보고 있는 중 이었는데

vec3 fixCubeLookup(vec3 _v, float _lod, float _topLevelCubeSize)

위의 함수는 DX 할 때 안보이던 거라 당황함;

또, OpenGL 에서는 아래와 같은 이상한 옵션이 등장함

glEnable( GL_TEXTURE_CUBE_MAP_SEAMLESS );  

뭐냐 싶었는데; 착하게도 주석에 있는 싸이트에서 설명이 잘되어있었다.

http://the-witness.net/news/2012/02/seamless-cube-map-filtering/

This feature is enabled automatically when using Direct3D 10 and 11 and in OpenGL when using the ARB_seamless_cube_map extension.

Direct9 과 구형 콘솔에서는 저 기능이 동작하지 않아서 문제가 된다고 한다.

https://stackoverflow.com/questions/32113528/pbr-reflection-stange-behaviour

https://www.slideshare.net/Mark_Kilgard/opengl-32-and-more/54-Seamfree_Cube_Map_Edges_ulliCube (54 페이지)

// Note: Environment textures are filtered with cmft: https://github.com/dariomanesku/cmft
// Params used:
// --excludeBase true //!< First level mip is not filtered.
// --mipCount 7       //!< 7 mip levels are used in total, [256x256 .. 4x4]. Lower res mip maps should be avoided.
// --glossScale 10    //!< Spec power scale. See: specPwr().
// --glossBias 2      //!< Spec power bias. See: specPwr().
// --edgeFixup warp   //!< This must be used on DirectX9. When fileted with 'warp', fixCubeLookup() should be used.

Irradiance는 우의 옵션으로 cmft에서 가져왔다는데 --edgeFixup 을 어떻게 한건지,

(CLAMP_TO_EDGE 로 그림)

OpenGL 옵션을 키든,

끄든,

fixup을 사용할 때만 괜찮게 나온다

원래 그런건지는 문제 발생했을 때 알아보자

'Game > Graphics' 카테고리의 다른 글

IBL (1)  (1) 2017.12.29
Bindless Graphics Model  (0) 2017.12.29
bgfx and cmake  (0) 2017.12.21
OpenGL  (0) 2017.12.20
Normalization term  (0) 2017.12.20
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크