For those interested in additional voxel content, see 18:17 for a quick update! This tutorial is a one-time departure from normal videos - I will make more voxel devlogs soon :)
@Voxelphile Жыл бұрын
Keep it up douglas! Your doing such excellent work here. We really love your content and your an instant click for many of us when we see you on the homepage.
@DouglasDwyer Жыл бұрын
Thank you!
@randcoding Жыл бұрын
Yaay! New video!!
@phylliida Жыл бұрын
Has the geese been a way for the birds to land when outside having feathers? I’ve been thinking about the cycle and can’t frame query often enough
@DouglasDwyer Жыл бұрын
If I understand your question correctly, you're asking when event cycles can be invoked and how often you have to send the frame event? When you invoke an event cycle using geese::GeeseContext::flush(), all events spawned during that cycle complete processing before flush returns. You can invoke an event cycle with the flush command whenever you'd like. Let me know if you have additional questions.
@phylliida Жыл бұрын
@@DouglasDwyer thank you
@alphenex8974 Жыл бұрын
hey, unrelated to this video but how do you ray-cast in your voxel engine? I know that you use compute shaders but how do you basically give the shader the Voxel Quadtree data? Do you have a Quadtree system in your shader or something like that?
@DouglasDwyer Жыл бұрын
Great question! I've explored a number of rendering techniques during this project. In the latest iteration of my engine, I don't use ray casting - I use pure rasterization with greedy meshing and LODs. This allows my engine to run on low-end hardware like integrated GPUs. In previous versions of my engine, I have tried pure ray marching and ray-raster hybrid techniques. In devlogs 1-3, I do ray marching in a compute shader. This is accomplished by uploading voxel octree data to a GPU buffer and traversing it in shader code. In devlogs 4-7, I rasterize the bounding boxes of small groups of voxels and then ray march inside those bounding boxes. This approach is accomplished by uploading the voxel data to a big 3D texture, and sampling it in a fragment shader.
@alphenex8974 Жыл бұрын
@@DouglasDwyer Thanks you for answering this quickly and answering in the first place. For uploading Voxel Octree Data can't we just use UBOs?
@DouglasDwyer Жыл бұрын
For large-scale voxel data, it's usually necessary to use an SSBO. The OpenGL specification only guarantees that UBOs can be up to 64 KB in size (or something even smaller, depending upon the version) which generally is not big enough for voxel volume data. For instance, the big tree model shown in my devlogs is upwards of 500 KB in my uncompressed voxel octree representation.
@tryangle6152 Жыл бұрын
wow the api looks awesome
@BusinessWolf1 Жыл бұрын
You haven't uploaded in a while. Sad.
@DouglasDwyer Жыл бұрын
I am currently studying at university, and thus do not have as much free time to make content. Rest assured, I am still actively working on the voxel engine!