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

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

На главную

I've been writing some code for efficient traversal in voxel spaces recently. Here's a visual comparison between the Bresenham line algorithm, and the Amanatides-Woo "Fast Voxel Traversal Algorithm". #gamedev #solodev #indiedev #customengine

25,850 просмотров • 1 год назад •via X (Twitter)

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

Фото профиля Meetem
Meetem1 год назад

At first I used it too, but unfortunately it’s too slow for big volumes and too rigid / expensive when it comes to skipping larger steps (like skipping 128/64/32 voxels etc), so only left it for small chunks where it works perfectly, and higher level is a traced tree

Фото профиля Topotoy Labs
Topotoy Labs1 год назад

Good point. Indeed, per-cell traversal is an insufficient approach for sparse/big volumes. But I will address that with a multi-resolution grid and a lo-hi precalculation of the contents of each cell.

Фото профиля Meetem
Meetem1 год назад

If you have an option to make mipmaps like Teardown did then HDDA can make sense, yes

Фото профиля Maurog
Maurog1 год назад

I dunno what you're building there, but in any case, this might help 🤔

Фото профиля Topotoy Labs
Topotoy Labs1 год назад

Thanks! This is part of a larger system I am building for terrain rendering.

Фото профиля Xiltsch
Xiltsch1 год назад

Is there any difference between Amanatides-Woo and the DDA(Digital Differential Analyzer) Algorithm?

Фото профиля Topotoy Labs
Topotoy Labs1 год назад

Somebody correct me if I'm wrong. My understanding is that DDA is any algorithm that incrementally steps through a line in a grid. Bresenham is a 2D, integer-only version. Amanatides–Woo traverses the 2D/3D cells pierced by the line segment between two floating-point endpoints.

Фото профиля Xiltsch
Xiltsch1 год назад

I looked the termup and found a paper titled "A Fast Voxel Traversal Algorithm for Ray Tracing" it appears to be a variant of DDA

Фото профиля Floorislava
Floorislava1 год назад

I was messing around doing a line of sight/lighting map and came up with a worse way of doing this but I thought it was interesting. Find the normal of the ray cast. Each voxel step, add the normal which is only 2 floating point adds with no branching.

Фото профиля AlbedoLux
AlbedoLux1 год назад

The Bresenham line algorithm is so clean. Understanding how it works teaches you so much about efficiency

Фото профиля ShiroJR
ShiroJR1 год назад

Oh i had the pleasure of doing 3D DDA recently too. Nothing fancy tho, just the basics...

Фото профиля Yuri Karabatov
Yuri Karabatov1 год назад

Looks like line rasterizing 😅

Фото профиля Topotoy Labs
Topotoy Labs1 год назад

That's what it is!

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