목록Unreal (5)
Libwan
FakeAxisUv 아카이빙 및 튜토리얼을 위해 작성 목표-오브젝트의 Position/Orientation과 관계 없이 World/ObjectLocal 등의 특정 Axis 를 UV로 활용할 수 있는 FakeAxisUv를 제작합니다. 본문-비슷한 효과를 만드는 데에는 여러 방법이 있을수 있으나,카메라와 카메라가 보는 픽셀의 연장선(카메라벡터) 과 Y/Z 면의 교점을 찾는 것으로 문제를 정리하였습니다. 그림에선 ? 로 표기된 T값을 찾아 Camera의 Position을 T만큼 카메라벡터 방향으로 밀면 원하는 Y/Z면의 교점을 찾을 수 있을 것입니다.요약해 표현하면 CameraPosition + ( CameraVec * T ) = P 이 됩니다. --- 평면 상의 두 점의 차를 평면의 노말로 내적하면..
postprocess radialblur 시간 날때 화면 전체가 아닌 부분적 radial blur에 대해서도 생각해 볼 것 https://observablehq.com/@s4l4x/efficient-gaussian-blur-with-linear-sampling Efficient Gaussian blur with linear sampling Here we calculate the weights and offsets for an efficient Gaussian blur with linear sampling. For reference see efficient-gaussian-blur-with-linear-sampling. Kernel weights Calculate the gaussian kernel wei..
지난 POM에 이어서, 경사면에서 POM이 적용된 Material이 왜곡되는게 눈에 밟혀 수정해보고 싶었다. 이는 다른 Displacement 등의 깊이 표현시에도 생기는 고질적인 문제인데, 평면에서 Uv를 offset하여 경사를 표현하기 때문에 그만큼 Material에 왜곡이 생길 수 밖에 없는것. 경사가 덜하면 그만큼 왜곡이 덜하겠지만, 위의 이미지처럼 경사가 격해질경우 눈에 띄는 왜곡이 보인다. 우리는 평면을 착시해 보고있기 때문에, WorldPosition 으로 접근해 해결할 수는 없고, POM의 계산된 픽셀의 WorldPosition을 필요로 하는데, POM 계산시 해당 XY좌표와 Heightmap의 값을 받아 좌표로 가져오자. POM의 적용된 평면의 WorldPosition을 획득했으니 XZ ..
Parallax Occlusion Mapping (POM) 표면의 깊이 디테일을 표현하기 위한 그래픽스 기법중 하나. 유사한 결과를 낼 수 있는 다른 기법으로는 Bump offset , Displacement 등이 있음. 기법 특성상 평평한 면을 기준으로 음각을 표현하는데 특화 Parallax Mapping 의 골자는 카메라가 평면(Fragment)의 한 점 P0 를 바라볼때 HeightMap(깊이) 가 고려된 Texture의 한 점 P1'를 나타내는 Texcoord P1 을 찾아 P0의 좌표를 P1으로 옮기는것임. 따라서 P1'의 근사치 P2'를 구하기 위해 우리는 P0의 카메라벡터에 역수를 취한 벡터를 보정한 값 V0에 P0'를 곱하여 P2'를 찾는다. (경사가 음각이 주를 이룰경우 일반적으로 정규화..
이펙팅에서 주로 쓰이는 Radial Panning 을 구현하기 위해서 알고 있는 큰 두가지 방식은 Shader 내에서 Texture UV를 (U - Radian / V - 중심에서의 길이) 를 기준으로 변형하거나, DCC(3dsmax, Blender, rhino etc..)에서 해당 기준으로 UV가 작업된 Disk Mesh 등을 준비하는 것이다. 다만 이 경우 Texture의 UV를 원형으로 변형하는것이기 때문에 기존 Texture를 바탕으로 UV가 변형된(원형으로 잡아당겨진) 모습을 유추해가며 작업해야하는 특징이 있는데, Texture의 변형 없이 중심점에서 Panning 하는 Material Function을 가지고 싶었음. 이유는 중심에서 Panning이 필요할때 좀더 직관적인 Texture 작업을..