Douglas
Douglas
  • Видео 26
  • Просмотров 497 951
Emissive voxels and fancy lighting [Voxel Devlog #19]
Try CodeCrafters for free today: app.codecrafters.io/join?via=DouglasDwyer
Scratchapixel's path tracing resource: tinyurl.com/y9e7wn5w
Online demo: github.com/DouglasDwyer/octo-release
Additional voxel models: tinyurl.com/mtk5mj7f
Path tracing looks amazing for voxel scenes! This devlog showcases my game engine's lighting system, which uses path-traced global illumination to simulate ambient occlusion and emissive materials. I discuss the fundamental rendering equation and how I chose a radiance function. Then, I talk about my unique approach to denoising using a GPU-side hashmap.
Music used in the video:
Rosentwig - On My Way
C418 - This Doesn't Work
C418 - Divide by Four Add Seven
Просмотров: 13 199

Видео

Doubling the speed of my game's graphics [Voxel Devlog #18]
Просмотров 20 тыс.2 месяца назад
Online demo: github.com/DouglasDwyer/octo-release Additional voxel models: drive.google.com/drive/folders/1lXTpIvv9BGtOaAVj0oaVUmOKiZ_cfWwE?usp=sharing With some clever tricks, I've managed to halve the frame times in my voxel game engine! Join me as I explain three essential optimizations for voxel rendering. These optimizations include using DDA for traversal, bitwise masking to filter out po...
Adding ray tracing (back) to my game engine [Voxel Devlog #17]
Просмотров 85 тыс.3 месяца назад
Online demo: github.com/DouglasDwyer/octo-release Additional voxel models: drive.google.com/drive/folders/1lXTpIvv9BGtOaAVj0oaVUmOKiZ_cfWwE?usp=sharing It's time for another devlog, and the engine has undergone a ground-up rewrite! In this video, I showcase the new ray marched graphics. I discuss the drawbacks of rasterization and the importance of two attributes in voxel engines: per-voxel col...
How I tripled the render distance in my game engine [Voxel Devlog #16]
Просмотров 36 тыс.5 месяцев назад
Try CodeCrafters for free today: app.codecrafters.io/join?via=DouglasDwyer Online demo: github.com/DouglasDwyer/octo-release How do games render such vast swaths of the world? This video showcases the level-of-detail (LOD) system that I implemented in my voxel engine. The LOD system ensures that far-away objects are rendered using simplified meshes, allowing the graphics card to quickly churn t...
Adding ambient occlusion to my game engine [Voxel Devlog #15]
Просмотров 21 тыс.6 месяцев назад
Try CodeCrafters for free today: app.codecrafters.io/join?via=DouglasDwyer Online demo: github.com/DouglasDwyer/octo-release In this devlog, I talk about the journey of adding ambient occlusion to my voxel programming project. Ambient occlusion is a lighting effect which darkens the corners and crevices of objects to mimic real life. I review the existing approaches to AO and go over my attempt...
INSANE bug in my code from compiler optimization
Просмотров 18 тыс.6 месяцев назад
For this quick video, I explain an oversight in my code, and how it caused undefined behavior. The bug provides an excellent case study for how compiler optimizations work, and why relying on unsoundness is bad in practice! Music used in the video: Corbyn Kites - Dusk Drive Corbyn Kites - Birds
GORGEOUS, speedy terrain generation [Voxel Devlog #14]
Просмотров 11 тыс.7 месяцев назад
Try CodeCrafters for free today: app.codecrafters.io/join?via=DouglasDwyer Online demo: github.com/DouglasDwyer/octo-release During this devlog, I unveil my techniques for customizable, optimized voxel terrain generation. I discuss how it is accelerated using the GPU, describe how interval arithmetic is leveraged to predict when regions of the world are homogenous, and touch upon how to apply i...
How to code PONG w/ Rust and Geese
Просмотров 2 тыс.10 месяцев назад
This video provides a tutorial on using the Geese event framework to build Rust projects of any scale! Geese is an event system library that allows one to compose actors by building a dependency graph. We cover the common ways that Geese is used, including: • Creating a context • Raising events • Defining event systems • Listening for events • Declaring and accessing system dependencies Music u...
OPTIMIZING my physics engine [Voxel Devlog #13]
Просмотров 25 тыс.11 месяцев назад
Online demo: github.com/DouglasDwyer/octo-release In this video, I put the finishing touches on my physics system! I highlight the various performance improvements that I've made - including object despawning, object sleeping, and multithreading - and discuss their implementation. I also offer my thoughts on game engine architecture, and ask for your feedback. I worked harder than ever to creat...
Chopping trees DOWN [Voxel Devlog #12]
Просмотров 18 тыс.Год назад
Online demo: github.com/DouglasDwyer/octo-release During this devlog, I recount the trials and tribulations of physics coding. I explain how to tackle big problems in small steps by analyzing how a tree falls in my engine. This involves two parts: a depth-first connectivity search which works especially well on voxel octrees, and some rotational dynamics equations that took me weeks to perfect....
Making voxels MOVE with the separating axis test [Voxel Devlog #11]
Просмотров 14 тыс.Год назад
Online demo: github.com/DouglasDwyer/octo-release Geese event system: github.com/DouglasDwyer/geese In this devlog, I go through some of the tough decisions that I made regarding my voxel engine. I talk about the separating axis theorem, and how I leverage linearity to use it efficiently in voxel-versus-voxel collision detection. In addition, I showcase transparent voxels rendered using weighte...
Adding SNOW and MODEL IMPORTS [Voxel Devlog #10]
Просмотров 7 тыс.Год назад
Online demo: github.com/DouglasDwyer/octo-release Geese event system: github.com/DouglasDwyer/geese In this video, I demonstrate the typical development process for my voxel engine, and showcase the many improvements and new features! Specifically, I added interactive snow, voxel model imports, a titlescreen, cascaded shadows, a settings menu, and many bugfixes this month. The voxel model impor...
Codebase OVERHAUL, new EVENT SYSTEM, LODs, and MORE [Voxel Devlog #9]
Просмотров 9 тыс.Год назад
Online demo: github.com/DouglasDwyer/octo-release Geese event system: github.com/DouglasDwyer/geese This video details the voxel engine rewrite that I undertook over the past month. After overhauling my event system, I restructured the totality of my Rust codebase in order to achieve better modularity, extensibility, and performance. Along the way, I made myriad improvements to the codebase. No...
GPU-generated DISTANCE FIELDS [Voxel Devlog #8]
Просмотров 20 тыс.Год назад
Please check out the online demo: octoproject.tk/ In this video, I talk about my exploration into the use of dynamically-generated distance fields to accelerate voxel rendering. I provide a brief overview of how ray marching against a distance field is performed, and present some approaches to distance field generation from voxel volumes. Then, I talk about how the GPU rasterizer may be utilize...
The PERFECT voxel rendering pipeline (and online demo) [Voxel Devlog #7]
Просмотров 73 тыс.Год назад
The PERFECT voxel rendering pipeline (and online demo) [Voxel Devlog #7]
Designing a FLEXIBLE game engine with Rust [Voxel Devlog #6]
Просмотров 7 тыс.Год назад
Designing a FLEXIBLE game engine with Rust [Voxel Devlog #6]
Adding MULTIPLAYER NETWORKING with WebRTC to my game engine [Voxel Devlog #5]
Просмотров 7 тыс.Год назад
Adding MULTIPLAYER NETWORKING with WebRTC to my game engine [Voxel Devlog #5]
Drawing MILLIONS of voxels on an integrated GPU with parallax ray marching [Voxel Devlog #4]
Просмотров 30 тыс.2 года назад
Drawing MILLIONS of voxels on an integrated GPU with parallax ray marching [Voxel Devlog #4]
Sparse voxel octree modification and benchmarking [Voxel Devlog #3]
Просмотров 10 тыс.2 года назад
Sparse voxel octree modification and benchmarking [Voxel Devlog #3]
Textures, lighting, and MUCH faster rendering [Voxel Devlog #2]
Просмотров 9 тыс.2 года назад
Textures, lighting, and MUCH faster rendering [Voxel Devlog #2]
Implementing sparse voxel octrees and the ray caster [Voxel Devlog #1]
Просмотров 23 тыс.2 года назад
Implementing sparse voxel octrees and the ray caster [Voxel Devlog #1]

Комментарии

  • @user-fi4zi5il9z
    @user-fi4zi5il9z День назад

    I like the new video format!

  • @Viola-iu1ys
    @Viola-iu1ys 2 дня назад

    you have a great sense of humor!

  • @nathanruiz3424
    @nathanruiz3424 3 дня назад

    Instead of standard ray/plane intersection marching, maybe you can use SDF ray marching when you aren't using DDA. SDFs are very GPU friendly and the SDF of a cube does not use division. Plus you can round/bevel your cubes using SDFs for added artistic desicions.

  • @sethpyle8857
    @sethpyle8857 5 дней назад

    Voxel de_nuke looks awesome

  • @SweeperFlies
    @SweeperFlies 5 дней назад

    So you’ve switched to grouping 64 voxels together and using 64 bits to represent the presence - or absence - of a voxel in that group…but can I ask: what physical size you’ve designed an individual voxel to be? From the video it looks as if each voxel is supposed to be a few centimetres in size, but it’s hard to tell. I’m particularly curious because of the permanent storage requirements of “tiny” voxels (at least…tiny compared to the Minecraft 1m cubed voxels…). I’m working on my own system (as per my comment on another of your videos) and trying to balance the requirements of higher detail (smaller voxels) against permanent storage requirements (smaller voxels = higher voxel density = more voxels = more storage requirements). Are your voxels ~5cm cubed or bigger or smaller?

    • @DouglasDwyer
      @DouglasDwyer 5 дней назад

      That's right, I am aiming for a voxel size about 16x that of Minecraft. That's probably about 5 cm or similar to Teardown's scale :)

    • @SweeperFlies
      @SweeperFlies 5 дней назад

      @@DouglasDwyer I had to google "teardown" as I had no idea what it is! 🤦‍♂️ Thanks for answering. 5cm seems like an ideal size 👍

  • @Yagir
    @Yagir 5 дней назад

    Very Small FPS in your last demo. I have 15 fps on 3050 RTX and Ryzen 5

    • @DouglasDwyer
      @DouglasDwyer 5 дней назад

      Thanks for trying the demo! If you are using the web version, make sure that it is actually running on your discrete GPU (as opposed to an integrated GPU). You can also try downloading the native demo instead, or decreasing the screen resolution for better framerates. But you should definitely be able to achieve 60 FPS at 1080p; I am able to do so on my 1660 TI.

    • @Yagir
      @Yagir 5 дней назад

      @@DouglasDwyer I use .exe file from github and i don't have a 60 fps. I got a very bad performance, and have delay when I try to remove something.

  • @user-cl1rq1sg8m
    @user-cl1rq1sg8m 5 дней назад

    Could you improve the performance of the voxel game veloren

  • @MaddGameMaker
    @MaddGameMaker 6 дней назад

    I'm just wondering - how do you find the normal vector of a voxel when the ray (from eye to fragment) hits it? When I raymarch from eye to fragment, i keep track of which axis the closest plane is on, and use that to decide the normal. The problem is that when the ray hits the surfaces at certain angles, the roundoff errors cause the wrong normal to be used, and so for example if you are really close to a wall, you see a "grid" around the voxels: this is because around the edges of voxels, the normal reported is the one for the internal (invisible) side. Since I'm not seeing you are any other raymarching youtubers struggle with this problem, I presume there must be some better way to figure out the normal of the voxel I hit. Do you have suggestions? Thank you in advance if you choose to answer.

    • @DouglasDwyer
      @DouglasDwyer 6 дней назад

      Hey there! There are two main approaches for this. One is to "bake" the normal into the voxel data. This is what I do, and it allows for the smooth per-voxel lighting shown in the video. If you want face normals, you should be able to extract the face normal index from your ray traversal algorithm. If you are using DDA, then the axis of the normal is determined by whichever direction the DDA algorithm last stepped.

    • @MaddGameMaker
      @MaddGameMaker 5 дней назад

      @@DouglasDwyer I'm storing my voxels in an SVO so they don't really have defined 'faces' and as such I don't think i can bake the normals in. At the moment I am extracting the normals from the raymarching algorithm (I don't use DDA at the moment) but I think the problem is if a voxel gets hit exactly on an edge, the algorithm can't decide which side it technically hit, and so sometimes it decides that it hit the invisible side. I do suspect that it might just be a bug in my implementation. Thank you for your advice!

  • @GamerSaga
    @GamerSaga 6 дней назад

    I am a bit confused your video description says using raytracing but you talk about raymarching?

  • @jameswilcock8
    @jameswilcock8 7 дней назад

    Very nice, lets see paul allens voxel rendering pipeline

  • @delphicdescant
    @delphicdescant 7 дней назад

    Basically saying "I've achieved the holy grail of computer graphics" feels *a little* conceited, but that aside, I really like your engine. A lot of these small-voxel engines seem to always try to copy John Lin's work, and concern themselves with outdoor sunlit scenes primarily (which are easier to light), but I appreciate how well yours handles indoor scenes with more varied lighting. Really good work!

  • @Cilexius
    @Cilexius 7 дней назад

    This is really amazing !!

  • @SweeperFlies
    @SweeperFlies 7 дней назад

    Hi Douglas! I’ve been following your work and I have a question: obviously your voxels are quite a bit smaller than those in other systems (like Minecraft’s). But how far down (under the “ground”) do your voxel worlds go?

    • @DouglasDwyer
      @DouglasDwyer 7 дней назад

      That's a good question. The world is essentially infinite - it extends for 2^32 or 4294967296 voxels along every axis.

    • @SweeperFlies
      @SweeperFlies 7 дней назад

      @@DouglasDwyer wow! So it loads and unloads “chunks” as you go deeper (I assume). How do you feel it compares with Minecraft’s voxel storage approach? I’m trying to get started with world building. In my case I’m using C++ and I’ve done some calculations on storage sizes for various voxel storage approaches. I want to go small (for better detail) but I’m struggling to make the numbers “fit” for an average PC. Using Minecraft’s approach is just not feasible as an increase in detail to 64 blocks per 1m3, would require larger amounts of ram and storage than most PCs have available. Hence my interest in your work (in addition to your work being just really clever and interesting). My first attempt was to set node 0 (parent of all nodes) as encompassing the entire planet and then drill down to detail from there. That caused so many problems 😂 I’m not saying it can’t be done, but there is quite a lot to figure out…

    • @DouglasDwyer
      @DouglasDwyer 7 дней назад

      There are definitely a lot of approaches to voxel storage, and which method works best depends upon the application. I've seen the top-level, full-world octree approach successfully applied (see Ethan Gore's work) but something as simple as a 3D chunk system works well too. Smaller voxels may require a form of brickmap, tree, or run-length encoding where homogenous regions are stored as a single piece of data.

    • @SweeperFlies
      @SweeperFlies 6 дней назад

      @@DouglasDwyer Thank you so much for the pointers and for taking the time to reply! I owe you one 😊 I had thought that RLE might be the only feasible way for me to store an entire planets worth of small (~10mm) voxels. I’ve also been developing VDL (voxel description language ) with the aim of storing voxel data as a series of instructions, including RLE style instructions, patterns, seeded randomisation instructions etc. just running the numbers made it obvious to me that the storage requirements for a single planet would be extreme if I was using Minecraft style storage; even 4 bits per voxel in a palletised compression system a la Minecraft would result in ridiculous storage requirements for voxels as small as I need them to be with the associated increase in numbers of voxels. Hence my working on VDL. My test example is based on 32 x 32 “chunks” where a “chunk” is 10m x 10m x 10m and 100 x 100 x 100 voxels. When I increased the sample to be 106,000 metres (planet core to the boundary with space). At that point, the only way to bring the storage requirements into the realms of the feasible is to design a VDL. I took inspiration from my work on VRML. Although VRML lagged behind technology, it was on the right track imo as it can take as little as a few bytes to describe a vast area. I’m extending my VDL design to include pattern descriptions, geometric shapes, seeded “noise” / repeatable patterns etc. I don’t know if your worlds are procedurally generated during runtime…in my case, I’m generating my worlds in advance: no realtime procedural generation. Did you consider developing a VDL or similar when you set out to write your own engine?

  • @jujuteuxOfficial
    @jujuteuxOfficial 7 дней назад

    For the beam optimisation: Have you considered that some single-voxel particles could be entirely missed?

  • @von_nobody
    @von_nobody 8 дней назад

    And using this make ultimate minecraft :D How big world with LOD can be displayed? could be this large enough to have similar scope to MC?

  • @meetem7374
    @meetem7374 8 дней назад

    Hello, I've actually stumbled across this exact problem of DDA being fixed, and I needed to traverse the octree in a more efficient manner. And actually I found the solution, it's pretty dirty, but it works. IDK if you can contact me on RUclips, but you can try.

    • @meetem7374
      @meetem7374 8 дней назад

      Other optimizations in mine and your raymarcher are actually pretty simillar :) for bitmasks etc

  • @kiriakosgavras108
    @kiriakosgavras108 8 дней назад

    Amazing stuff!

  • @AndrewTSq
    @AndrewTSq 8 дней назад

    Not sure I understood half of the things you talked about, but love the look of the game!.

  • @tdottosama
    @tdottosama 8 дней назад

    I've been watching this come along for years. Your work has been very inspiring. Thank you!

  • @kaede_elfen
    @kaede_elfen 9 дней назад

    Just subbed. Amazing stuff!

  • @parkershaw9747
    @parkershaw9747 9 дней назад

    i wonder if you'd be able to easily extend the algorithm to do bounce lighting with a second ray from the bounce. with all the techniques you cooked up, i think it would be smooth and look great. you could even have a setting to determine n bounces for computers with very high specs.

  • @emilien7543
    @emilien7543 9 дней назад

    1:20 "Meet Gorgeous Latina Women" xD

  • @TeltStory
    @TeltStory 9 дней назад

    You could draw the material at blank locations as if rasterizing, and then blend it, and draw at the final bounce as if rasterizing.

  • @TiagoTiagoT
    @TiagoTiagoT 9 дней назад

    In case you haven't watched it yet, you might be interested in the 2021 SIGGRAPH presentation called "Global Illumination based on Surfels"

  • @MaddGameMaker
    @MaddGameMaker 9 дней назад

    I've watched most of your videos, you're doing a really good job! I myself am working on a voxel game for about 2.5 years; funny that we started around the same time. Though in my case I'm not necessarily focused on the graphics engine. I went from using polygons to raymarching a few months ago but there's still a lot of work to do on various details of it. My pipeline is quite different from yours. I render the scene by raymarching from each pixel in the direction of the sun; if I hit an object, I consider the pixel to be in shadow, else I calculate the intensity of light based on the normal and the direction of the sun. During this pass I create an image with the unlit colors, the intensity of sunlight, the normals and the positions. Then, I render a sphere around each light source, and within this sphere, I read the position and normal from the previously-generated images and cast another ray - towards the light source - and add the intensity to the light image. I finally combine the light image with the unlit color image. It performs surpringly well even with thousands of light sources, but it does lag on older GPUs when lights are present. Your videos did give me some ideas during the process. Your technique might inspire some more improvements to my lighting system. Keep up the good work and congratulations on everything you've done!

  • @JoshuaBarretto
    @JoshuaBarretto 9 дней назад

    Very impressive work! I'm wondering how well this translates to directional effects like specular reflection or temporally inconsistent effects like moving objects. When I was working on my SSAO shader for OpenMW, I found I could get pretty beautiful SSAO for static scenes with just reprojection and temporal AA, but moving objects caused a lot of problems.

    • @DouglasDwyer
      @DouglasDwyer 9 дней назад

      That's a great question. For specular, I think temporal accumulation wouldn't work, so I would have to cast specular rays during the "direct" (non-path traced) lighting pass. I already do this for sunlight shadows, and the hashmap is still handy as I can cast just one ray per-voxel. I haven't looked at AO or emissive materials with moving objects yet. Maybe it will look weird lol. In that case, I can try to reduce the amount of temporal accumulation that is used.

  • @fazin85
    @fazin85 9 дней назад

    Congrats on 10k❤

  • @Arthur-vo6fw
    @Arthur-vo6fw 10 дней назад

    Hi, you have to take a look at this : Beyond White Noise for Real-Time Rendering from the channel SEED - Electronic Arts Blue noise work like magic for low sample count and realtime!

    • @DouglasDwyer
      @DouglasDwyer 9 дней назад

      I actually do use blue noise for picking the Monte Carlo rays!

  • @ILBorz
    @ILBorz 10 дней назад

    Keep it up man! You are reaching something truly awesome!

  • @cosb7207
    @cosb7207 10 дней назад

    Would love to see some BRDF magic next. Iirc you've got unique per-voxel normals, I'm curious to see how that would look with even some basic fresnel-driven gloss. Also HDR colors + basic tone mapping would make emissive voxels/skyboxes look insane

  • @Tyradius
    @Tyradius 10 дней назад

    Wonder how Rust would perform in comparison. 😊

  • @lunatikreal1384
    @lunatikreal1384 10 дней назад

    Удивляюсь с каждого твоего видео, отличная работа, альтернатив просто не существует! Желаю тебе успехов, в этом нелёгком деле, и очень надеюсь, что когда-нибудь на твоём движке люди начнут создавать игры!

  • @dennisd7
    @dennisd7 10 дней назад

    Well done, this is really good stuff.

  • @AnOliviaShapedGremlin
    @AnOliviaShapedGremlin 10 дней назад

    I always wondered if rendering each voxel as a 2D point in 3D space might look or perform any better than rendering cubes. For example something where distant points that would otherwise occupy one pixel are averaged together into a larger, lower density grid, and where points that are close enough to the camera to where you might see between them get expanded to fill the space, maybe with some additional noise or filler texture applied to fake even smaller detail. No idea how well it would work in practice, but it would be interesting to see something like it tested.

  • @dxred2553
    @dxred2553 10 дней назад

    This is amazing. It's turning into exactly what I picture when I think "voxel engine"! The fact that this is all running on a 1660ti is just mind boggling, too. One minor nitpick, as a french speaker: "À-trous" is french for "at/toward holes" and sounds a little more like "ah true", not "a truce". Not a big deal though, especially compared to the insane amount of code work you've put in 😂

  • @tommycard4569
    @tommycard4569 10 дней назад

    So cool! I always look forward to ur videos

  • @dphfox
    @dphfox 10 дней назад

    This is awesome! Your work is always inspiring. I had a similar idea for spatial ray reuse that I wanted to leverage for my own voxel engine, though it was texel based since my engine is designed to be more Minecraft like. The fact you got this working is very cool and I can't wait to see where you go with it! You are truly innovating :)

  • @forest6008
    @forest6008 10 дней назад

    mad respect, u program in light mode

  • @FoxiqueGC
    @FoxiqueGC 10 дней назад

    I was wondering if it would be possible to make lower resolution scales have sharp edges. You should already know where the edges of all visible voxels are so instead of simply rendering the pixelized output you could take each pixels corresponding to individual faces of a voxel upscale it as its own image (only blending pixels from the same face) and then sort of apply a "mask" following its edges so there is a clear cutoff instead of a blurry one. Also for some reason, if I set the resolution scale below 1x, the frame time stays constant at 6ms no matter if i use 2x or 5x scale.

    • @DouglasDwyer
      @DouglasDwyer 10 дней назад

      Thanks for trying the demo! You can make the edges appear sharp by turning off antialiasing (which has a very particular appearance at lower resolutions). Maybe that will make things sharp in the way that you describe. As for things staying at 6 ms, you were probably hitting the limit of your display's refresh rate.

  • @LunarGameDev
    @LunarGameDev 10 дней назад

    This really has come so far! Keep up the great work!

  • @cheesymcnuggets
    @cheesymcnuggets 10 дней назад

    Tbh i dont really understand what you explain in your videos but I still watch them and I kinda just sit here in pure amazement, it's so cool. I honestly can't wait to see the finished product

  • @frozein
    @frozein 10 дней назад

    Wow, really impressive work! Interestingly, a few weeks ago I started work on implementing a per-voxel hashmap into my own engine for lighting. My whole pipeline was basically identical to yours, great minds think alike haha. I have since changed my technique slightly though and have thus far only used it for soft shadows. Excited to see what you do next!

    • @DouglasDwyer
      @DouglasDwyer 10 дней назад

      I'm not surprised to hear that. When I was exploring this idea, your original Doon Engine was one place that I looked for inspiration (since it also leverages per-voxel calculations).

    • @frozein
      @frozein 9 дней назад

      @@DouglasDwyer Glad my old engine is still useful! The hashmap approach seems very promising, basically a denoiser+stylizer in one. I think DoonEngine had the right idea but doing the lighting in a separate compute shader was just too slow and memory-intensive.

    • @frozein
      @frozein 9 дней назад

      @@DouglasDwyer Congrats on 10k by the way!

  • @BodhiDon
    @BodhiDon 10 дней назад

    Amazing work! Great solutions for denoising, the shot of the tree at night really sells the value of the emissive voxels!

  • @dobrx6199
    @dobrx6199 11 дней назад

    This looks amazing! What is the performance like?

    • @DouglasDwyer
      @DouglasDwyer 10 дней назад

      You can try the demo for yourself to find out! But on my NVIDIA 1660 TI, I am able to run all scenes at 100 FPS at 1080p. On my Intel UHD 750H iGPU, I need to use a resolution of only 360p, but it runs at 60 FPS.

  • @galaxygames3216
    @galaxygames3216 11 дней назад

    you are doing gods work here.

  • @SirDragonClaw
    @SirDragonClaw 11 дней назад

    You really should have nearest neighbour upscaled this video to 4k and uploaded it at 4k. RUclips compression completely butchered parts of this video.

  • @teabow.
    @teabow. 11 дней назад

    Congrats on 10k subs !

  • @timmygilbert4102
    @timmygilbert4102 11 дней назад

    Sound like temporal reStir

  • @georgehawryluk7976
    @georgehawryluk7976 11 дней назад

    Have you got a road map? Quo vadis Douglas? At what point does the engine become a finish product? I've been following you for a while and, yes the progress is impressive and kudos to you for not giving up

    • @DouglasDwyer
      @DouglasDwyer 11 дней назад

      Great question! I do have a general idea of what I want to build. The goal is to create a platform where users can create different games, and play games written by other users. The underlying voxel technology should allow these games to leverage building/destruction mechanics in unique ways. The engine becomes a finished product when: - All core game engine functionality (physics, proper building system, input handling, and third party plugins) are fully integrated and supported. - I have built an example game with the engine. I am taking this summer vacation to just work on the engine. Afterward, I'm going back to university for my senior year. My hope is to spend this summer, and the next year at university, finishing the core functionality. Once it's close to completion, I'll build an example game in it and then release the engine for others to build games with as well. In terms of business plan, I haven't made any concrete plans yet. But I am most interested in revenue-sharing models, where developers can create games in the engine for free, and then publish them on my platform.

  • @sgmvideos5175
    @sgmvideos5175 11 дней назад

    Tried running it in browser and yea... it's a bit laggy (like 2 - 5 fps I'd guess?) but personally I wouldn't be able to do this under 1 fps, so great job, considering how great it's looking.

    • @DouglasDwyer
      @DouglasDwyer 11 дней назад

      Thanks for trying out the demo! For full 60 FPS at 1080p, a discrete graphics card is required. If you want to run the game on an iGPU (which I'm guessing is what you're doing), you can turn down the screen resolution using the in-game settings menu. This should help it run at a playable speed.

    • @sgmvideos5175
      @sgmvideos5175 10 дней назад

      Well... maybe that's what happened, I'll try to see later if I can make sure it's running on the stronger one.