Skip to content

V4.2.0-Alpha

Latest

Choose a tag to compare

@redcamel redcamel released this 06 Jul 07:34

RedGPU V4.2.0-Alpha-rnd


1. SSBO (Shader Storage Buffer Object) 구조 통합

  • 인덱스 기반 바인딩: 메시와 재질 데이터를 전역 스토리지 버퍼(SSBO)에 통일해 두고 인덱스 번호표로 고속 조회하여 드로우콜 바인딩 비용을 차단했습니다.
  • 슬롯의 크기는 동적으로 자동으로 늘어납니다.
버퍼 명칭 초기 슬롯 수 단일 슬롯 크기 (Bytes) 주 용도
globalVertexSSBO 2,000 304 메시 변환 행렬 및 버텍스 연산 속성
globalFragmentSSBO_PBR 1,024 912 PBR 재질 속성 및 GLTF 확장 옵션 제어
globalFragmentSSBO_BuiltIn 1,024 112 기본 빌트인 머티리얼 속성 제어

2. CPU 컬링 (Culling) 최적화 시스템

  • 조기 탈락 (Early-Out): 카메라 뒤편 물체는 복잡한 6-Plane 충돌 검사 전, 단순 1회 내적(Dot Product) 연산으로 우선 제외합니다.
  • 가변 인터리브드 컬링: 씬의 물체들을 4개 그룹으로 분할하여 매 프레임 1/4씩 순차 계산하며, 카메라 속도에 감응하여 주기를 실시간 가감합니다.
  • 원거리 아주 작은 물체 생략: 투영 높이가 화면 세로 대비 1% 미만(minScreenSpaceSize = 0.01)인 물체는 그리기에서 제외합니다.
컬링 기술 기존 방식 (AS-IS) 개선 방식 (TO-BE) 핵심 효과
Early-Out 매번 6개 평면 충돌 정밀 내적 단순 1회 내적으로 카메라 후방 메쉬 필터링 연산 부하 대폭 감소
인터리브드 컬링 매 프레임 무조건 전수 정밀 추적 4분할 교대 갱신 및 캐시 재사용 프레임 연산 분산
원거리 생략 크기와 관계없이 모두 렌더링 화면 높이 대비 1% 미만 제외 드로우콜 비용 절감

3. 모션 블렌딩 및 애니메이션 시스템 고도화

  • 애니메이션 상태 머신 (AnimStateMachine) 도입: 상태(State) 및 전이 조건(Transition Rules)에 따라 실시간 믹서 레이어의 가중치(blendWeight)와 크로스페이드를 애니메이션 상태 제어 시스템이 자동으로 제어합니다.
  • CPU-Side TRS Blending: 조인트 변환 연산 전 단계(로컬 스페이스)에서 모션을 믹싱하여 연산 오버헤드를 줄였습니다.
  • 최단 경로 SLERP 보정: 회전 믹싱 시 쿼터니언 내적 계산으로 꼬임을 방지하며 최단 경로 보간을 계산합니다.
gltf.-.Motion.Blending.AnimGraph.-.Chrome.2026-07-06.15-12-25.mp4
Advanced.Character.Controller.-.Chrome.2026-07-06.16-30-40.mp4

Live Demo


4. 그림자 (Shadow) 시스템 변경

  • 동적 프러스텀 피팅 (Tight Fitting): 매 프레임 메인 카메라 뷰 프러스텀 8개 정점을 월드 공간으로 역투영해 그림자 상자 범위를 꽉 채움으로써 해상도 낭비를 방지하고 그림자 화질을 극대화했습니다.
  • 그림자 런타임 제어: 방향성 조명 그림자 관리자에 강도 제어(strength, 기본값 0.7) 및 PCF 필터 번짐 조절(filterScale, 기본값 2.0) 속성을 추가했습니다.
변경 항목 기존 방식 (AS-IS) 개선 방식 (TO-BE)
정사투영 범위 카메라 거리 기준 고정식 영역 계산 카메라 프러스텀 정점의 실시간 역투영 피팅
그림자 농도 고정식 그림자 농도 DirectionalShadowManager.strength 런타임 조절
필터 스케일 고정식 PCF 블러 반경 DirectionalShadowManager.filterScale 런타임 조절

Live Demo