티스토리 뷰

Game/Graphics

Area light cont.

newpolaris 2018. 3. 18. 18:52

추가로 찾은 소스와 ray의 구현체에서 배울게 많다

TextureArray

mipmap 방식은 2048, 1024로 level이 떨어질 때 마다 크기가 줄어든다

작게는 아래와 같지만, 좀 복잡한 이미지를 비스듬하게 볼경우 각진 형태가 많이 보인다

그냥 512x512로 array 형태로 저장하면 각진 형상은 줄어든다

Texture

mipmap과는 (blur는) 차이가 존재한다

당연히 mipmap은 멀리 봤을 때 원본을 흉내내는거라

Level 6의 경우

특히,

// distance to texture plane
// in shader: LOD = log(powf(2.0f, Nlevels - 1.0f) * dist) / log(3)
const float dist = powf(3.0f, level) / powf(2.0f, Nlevels - 1.0f);

// filter size
// at distance 1 ~= Gaussian of std 0.75
const float filterStd = 0.75f * dist * imageInput.width();

std 값이 특히

level 4: distance to texture plane = 0.0395508, filterStd = 15.1875

level 5: distance to texture plane = 0.118652, filterStd = 45.5625

level 6: distance to texture plane = 0.355957, filterStd = 136.688

너무 커진다

http://dev.theomader.com/gaussian-kernel-calculator/

10 이상이되면 kernel 크기 15에선 차이가 안난다. 다 거의 값을 가진다;

https://github.com/genekogan/Processing-Shader-Examples/blob/master/TextureShaders/data/blur.glsl

https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html

ray에서 FastBlur 가 존재하는데, 이런 것(머였을까;) 때문에 on-the-fly로 적용이 힘들듯;

Alternative

Radiance는 약간만 존재해도 되는 듯

Animation

ray는 animation도 지원하는데 존재하는데; 따로 해당 방법에 대한 코드가 없다

할려면 TextureArray에 mipmap을 적용한 형태가 간단할 듯 (ray-mmd 의 gif 보고 적은 듯)

Shadow

구현이 힘들다

그냥 area light 속성을 무시하거나

있긴 한데 이건 연결되지는 않을 듯

(PSSM을 이용한 눈속임 구현)

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

HLSL pow  (0) 2018.08.01
Volumetric Light  (0) 2018.03.21
Real-Time Area Lighting: a Journey from Research to Production  (0) 2018.03.15
Ground truth option  (0) 2018.03.13
LTC Implementations  (0) 2018.03.05
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크