목록2025/04 (8)
개발하는 리프터 꽃게맨입니다.
한 3시간 걸린 것 같습니다.재밌네요 전체코드더보기 #include iostream>#define NOMINMAX#include Windows.h>#include cassert>#include chrono>#include vector> #define PI 3.14159265358979323846f#define DEG2RAD(x) ((x) * PI / 180.f) struct ScreenBuffer{ uint8_t* buffer; uint32_t width; uint32_t height;}; struct Matrix4x4{ float m[4][4]; static Matrix4x4 Identity() { Matrix4x4 result = {}; re..

그렇게 눈에 띄는 효과는 아니지만없으면 허전한게 앰비언트 오클루전 인 것 같습니다. 반구형 오프셋 커널을 만들어서현재 픽셀을 일정 오프셋만큼 이동시켜줍니다.그 다음 해당 픽셀의 깊이와 뎁스 버퍼에 저장된 깊이를 비교하여뎁스 버퍼에 저장된 깊이가 더 얕다면 오클루전 팩터에 1씩 더합니다. 이것은 현재 픽셀 주변에 나를 가리는 차폐체가 있다는 것을 의미합니다. 그렇게 게산하면 이 장면에서 이렇게 차폐 정도를 계산할 수 있습니다. 이걸 라이팅 과정에서 앰비언트 부분에 곱해주면 SSAO 완성입니다. 좌: AO 가 적용되지 않음우: AO 가 적용됨 차이가 좀 있는지요..?제 눈에는 조금 납니다 좌: AO 가 적용되지 않음우: AO 가 적용됨 현재는 샘플링수가 64, 노이즈의 크기는 4입니다. 꽤나 고품질이죠..
(그림자를 만들어내지 않는..) 빛 무려 1000개를 렌더링해도 60 프레임 유지!