Загрузка видео...

Не удалось загрузить видео

На главную

As promised, more insights on the webgl raytracer. It is based on this article/paper by Tero Karras: It uses Morton code to build a BVH binary radix tree on the GPU in realtime. #webgl #bvh #raytracing

44,019 просмотров • 3 лет назад •via X (Twitter)

Комментарии: 10

Фото профиля Nicolas Riciotti
Nicolas Riciotti3 лет назад

The test scene is 3,1 million triangles and apart from the ordered Morton code atlas, it builds a single BVH in few milliseconds on a M1 mac.

Фото профиля 𝚋𝚞𝚝𝟶𝚗
𝚋𝚞𝚝𝟶𝚗3 лет назад

Amazing! I thought Morton code requires bit operation that is not supported in webgl/glsl 3.0.

Фото профиля Nicolas Riciotti
Nicolas Riciotti3 лет назад

thanks ! I though it too but ES 3.0 shaders support at least some bit operations. Here's the code I use (adapted from:

Фото профиля Jesper Mosegaard
Jesper Mosegaard3 лет назад

Very nice work!

Фото профиля Nicolas Riciotti
Nicolas Riciotti3 лет назад

Thanks ! :)

Фото профиля tamat
tamat3 лет назад

Interesting, how do you build data in the GPU? Do you use FBOs or Transform Feedback? AFAIK WebGL2 doesnt support Compute Shaders.

Фото профиля Nicolas Riciotti
Nicolas Riciotti3 лет назад

Hey! Yes I use FBO. basically I use vertex shader, instead of compute shader, to draw a large atlas where 1pixel corresponds to 1 vertex and I store position,normal and uvs as packed data in a frame buffer.then use that for Morton code atlas

Фото профиля chris
chris3 лет назад

Awesome! Maybe you could help me with the morton BVH construction, i‘m stuck at the morton code determination: it only uses decimal bits within the unit cube, but how are coordinates above 1.0 handled? Wouldn‘t coord morton codes repeat for each „unit cube“ block of geometry? 😅

Фото профиля Nicolas Riciotti
Nicolas Riciotti3 лет назад

For Morton code you need to use ints instead 0-1 range floats. With 30 bits Morton code you can get up to 1024^3 precision. So you take your scene max size and split it in 1024 units and round to the closest int on x, y and z axis :)

Фото профиля mattebb.bsky.social
mattebb.bsky.social3 лет назад

@Thebadlament That is so impressive!

Похожие видео