Skip to content

kimminkyeu/Bounding_Volume_Hierarchy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Obj file viewer

제목 없는 동영상 - Clipchamp로 제작 (2) image

BVH build time test (ms)

Test Model: Stanford Bunny (2.5mb, 14 million polygons)
- sample assets from https://casual-effects.com/data/

#1) SAH bruteforce approach : 938966 ms
#2) SAH with uniform buckets binning : 204 ms
#3) (Current Version) SAH binning with 12 threads : 110 ms --> Bottleneck !!!

Dev Todo

  • ✅ Möller–Trumbore intersection algorithm 이랑 현재 삼각형 충돌 방식 중 나은 방안 선택
  • Thread build 구조 변경을 통한 Bottleneck 해결
  • UV unwrap algorithm?
  • Animation을 위한 Refit, Reform 로직 추가
  • Debug Mesh 생성 쓰레딩을 위해 Vulkan으로 이전할 것. (OpenGL은 thread specific이라 한계가 있음)
  • implement Global-illumination (ray-tracing)
  • store Mesh to Half-edge structure

Compile & Run

this project is for Linux, MacOS. (Windows is currently not supported)

#0) install dependency
 sh ./dependency/build_dependency.sh
#1) compile with cmake (Realease version)
 cmake -DCMAKE_BUILD_TYPE=Release -B release && make -C release
#2) run program
 ./release/scoop

1. 기타

  1. 추후 기능개발 후 Entity Component System (ECS) 방식으로 구조 작성할 것.
  2. The Cherno GameEngine Series (Demo)
  3. GameEngine Series Sandbox OpenGL
  4. Hazel Engine Vulkan
  5. Walnut Framework Vulkan

2. 장기적 목표

  1. 프로젝트마다 해당 구조를 재사용 할 수 있도록 Template화 할 것.
  2. OpenGL로 먼저 구현 후, Vulkan으로 이전.
  3. 구조는 Hazel Engine을 분석하여 반영할 것.
  4. ImGUI 로 초반 프로토타입만 작성한 후, QT GUI로 최종 변환할 것.
  5. Mac, Linux, Window 모두 지원되도록 CMake로 build 환경 구성할 것.
    # 운영체제에 관계없이, git clone 후 아래 명령어만 실행하면 컴파일 되도록 설정할 것!
    cmake -B build && make -C build

About

[mini-blender] just like 42 mini-shell project!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published