티스토리 뷰
추가로 찾은 소스와 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