|
Post by ketmar on Dec 15, 2022 22:41:19 GMT -5
i'm not going to compete with other editors anyway. i just need a tool to create very simple objects, and perform some (also very simple) edits. tbh, i'd just use magica with wine, but… there is no 32-bit builds of it.
as for goxel… tbh, i don't know what it tries to be. it is unusable on anything that is not a touch-screen; it has materials and lighting for some reason, but you cannot build huge worlds with it, because its renderer becomes unbearably slow on huge models; yet for some unknown reason it has built-in pathtracing… and yet you can't even create the standard 4-window view mode with it (that one with front/top/side/free, familiar from other 3d editors). still, it has some interesting features, like "shape layers", so you can do CSG with them. dunno, it's a strange project.
|
|
|
Post by ketmar on Dec 19, 2022 15:44:53 GMT -5
testing CPU raycaster over sparse voxel octree (basically, the same code that will go into the shader later). this is the same scene, just moved the camera slightly forward, so it enters the house. in 320x240, this gives ~12 FPS. already much better than ~2 FPS with "let's throw all voxels to the GPU and hope for the best". ;-) i expect at least x10-x15 speed boost with GPU raycasting, so it will be more than enough for the editor. render times are more-or-less constant regardless of scene complexity and view point (well, the less voxels you see, the faster it is, but i'm talking about more complex cases here ;-).
|
|
|
Post by ketmar on Dec 20, 2022 5:37:59 GMT -5
so, i implemented it on GPU, and got 30-60 FPS with 1024x768, for 1024x1024x190 voxlap test scene. this can be optimised further by reordering SVO nodes (for better cache utilisation), but meh… i'm totally ok with the current results. ;-) video. ;-) p.s.: scene contains 1,852,924 voxels, SVO built in 160 msecs (using "inject each voxel into the tree" method, i.e. zero building optimisations were done).
|
|
tdrr
Doomer
Posts: 63
|
Post by tdrr on Dec 20, 2022 13:35:37 GMT -5
Impressive! What's this? Hardware accelerated voxlap? Jokes aside, that is awesome.
|
|
|
Post by ketmar on Dec 20, 2022 14:20:21 GMT -5
Impressive! What's this? Hardware accelerated voxlap? fun fact: Ken himself has a kind of hw-accelerated voxlap. which is basically the same tech, but more optimised. ;-) Jokes aside, that is awesome. thank you! still, i have to admit that the core raycasting routine is from this article. so i can't claim that i did this Wonderful Tech myself. ;-) p.s.: tbh, this is a slight overkill for a simple voxel editor, but i couldn't resist the temptation… i mean, if it works acceptably on this 1024x1024x251 (not 192, as i thought before) voxel object, then it will definitely work ok with Doom "voxel sprites". ;-)
|
|
tdrr
Doomer
Posts: 63
|
Post by tdrr on Dec 20, 2022 21:39:45 GMT -5
I didn't know that, interesting. Very nice performance for it running on such a bad laptop, consistent 30fps on all backends on the default scene. Also ARB shaders which is always cool to see, though performance is unexpectedly "improved" by 0.01ms with them, lol. p.s.: tbh, this is a slight overkill for a simple voxel editor, but i couldn't resist the temptation… i mean, if it works acceptably on this 1024x1024x251 (not 192, as i thought before) voxel object, then it will definitely work ok with Doom "voxel sprites". ;-) It's not very likely you'll have anyone complaining about low performance with this now so that's absolutely a win
|
|
|
Post by ketmar on Dec 21, 2022 16:51:48 GMT -5
It's not very likely you'll have anyone complaining about low performance with this now so that's absolutely a win there is a little problem, though. now i want to write a simple "walker around", with coldet and such. just because… because… because it is so hard to resist… must… write… game engine… NO! I HAVE TO RE… must… write… game engine… btw, i'm now rendering in "resolution/2", and simply upscaling the result. the loss of quality is neglible (almost invisible, actually), but it is solid 60 FPS now.
|
|
|
Post by ketmar on Dec 21, 2022 20:13:38 GMT -5
some raycasted shadows (not backed!). just for fun, because it is hard to stop when you have a working raycaster… ;-)
|
|
tdrr
Doomer
Posts: 63
|
Post by tdrr on Dec 22, 2022 12:47:51 GMT -5
How's performance with that? Don't think I have to say, but that looks phenomenal.
|
|
|
Post by ketmar on Dec 22, 2022 14:20:20 GMT -5
How's performance with that? had sometimes drop resolution to /3 to get 60 FPS on my ancient GT720. actually, it is possible to trace shadows with a smaller resolution that the scene itself (viva octrees!), i simply didn't bothered. and everything can be made even faster by using compute shaders for beam optimisations; i also believe that huge speedup can be achieved by exploiting temporal coherence (the camera is not teleporting after all ;-), but hey, that's not the goal (at least yet ;-). ah, you need OpenGL4+ for that. if you have GL4-capable GPU, i can PM you the sources to play with. ;-)
|
|
|
Post by 3t0 on Dec 24, 2022 7:25:23 GMT -5
some raycasted shadows (not backed!). just for fun, because it is hard to stop when you have a working raycaster… ;-) WTF, you are madman! Mad scientist level. I don't think I've ever heard about voxel engine with fully raycasted shadows - are there any even? How many light sources can you trace anyway or is it sun only?
|
|
|
Post by ketmar on Dec 24, 2022 8:35:35 GMT -5
actually, you can see the very same tech used, for example, in Unreal -- SVO is actively used in contemporary engines to calculate GI and shadows.
of course, with the current code even one light source is somewhat computation-heavy. it is definitely possible to make it much faster with some tricks, and trace much more than one light, but it's not my goal. i just added one simple raycast to get some k00l screenshots.
and no, it's not me: the whole thing is possible due to the article i linked above. those guys developed very fast raycaster (raymarcher, actually), i'm just using it to pretend that i could do that without them. ;-)
|
|
Mr.Rocket
Doomer
Say hello to my BOOMSTICK!
Posts: 15
|
Post by Mr.Rocket on Dec 24, 2022 21:09:52 GMT -5
Thought you might dig this: No real new stuff or special effects here though, aside from k8vavoom standard shadows.
|
|
|
Post by ketmar on Dec 25, 2022 2:21:44 GMT -5
wow, thank you! i believe that such small things is the best way to show off the engine. i mean, if there are a lot of stuff packed into the video, people became overloaded with info. showing it one-by-one is easier to grasp. ;-)
p.s.: there seems to be a light culling bug on the ceiling. something i know about for a long time, but cannot catch it…
|
|
Lobo
Doomer
Posts: 555
|
Post by Lobo on Dec 25, 2022 3:46:52 GMT -5
Awesome!
|
|
|
Post by 3t0 on Dec 25, 2022 8:11:51 GMT -5
Thought you might dig this Very nice and sensible! Would you be willing to also show model shadowing (shadow on a model object) on that flag with d3-like shadows?
|
|
Mr.Rocket
Doomer
Say hello to my BOOMSTICK!
Posts: 15
|
Post by Mr.Rocket on Dec 25, 2022 15:36:13 GMT -5
Thanks guys, it's not much, just testing things out. 3t0 , do you mean something like this?: These are md3's btw..
|
|
|
Post by ketmar on Dec 25, 2022 15:51:00 GMT -5
btw, i'm going to push new public build soon (i hope, i really-really hope! ;-), with small bunch of fixes. the most interesting fix prolly the one that will allow to use models with a lot of triangles (required for Cheello voxels ;-).
|
|
Mr.Rocket
Doomer
Say hello to my BOOMSTICK!
Posts: 15
|
Post by Mr.Rocket on Dec 25, 2022 16:02:18 GMT -5
Nice! I've been messing around with voxels too, a little bit. I know they seem to be a bit more fps demanding than md3, so hopefully they will work out. Can't wait to check it out!
|
|
|
Post by ketmar on Dec 25, 2022 18:06:28 GMT -5
actually, only huge things like Cybbie or Mastermind are somewhat slow. the engine easily renders hundreds of voxel monster models. also, i'm planning to add sprite generation for shadows (most of the time shadow from the sprite is acceptable, and it renders MUCH faster).
also, switching to deferred (or combined) renderer will make everything even faster. sadly, currenly k8vavoom has to render everything 3-5 times to build one frame. of course, it does depth culling (i.e. second and other render passes are somewhat faster than brute force), but it's still not very good. that's what Janis had to do back than, but hey, it's 2023 soon, time to upgrade the renderer a little!
i hope to start working on defered renderer when power outages stop (or at least will be reduced considerably).
|
|
Mr.Rocket
Doomer
Say hello to my BOOMSTICK!
Posts: 15
|
Post by Mr.Rocket on Dec 25, 2022 22:30:35 GMT -5
actually, only huge things like Cybbie or Mastermind are somewhat slow. the engine easily renders hundreds of voxel monster models. also, i'm planning to add sprite generation for shadows (most of the time shadow from the sprite is acceptable, and it renders MUCH faster). Ah nice, well even better then! Can't wait for the new build. Edit: .. oh I've been meaning to ask, and I find this kind of strange: Ok, I (use to) have a song, "sonic5.wav" play via mapinfo, which you'll also hear in that video I posted up there, the thing is, I don't have sonic5 in the mapinfo anymore, yet k8vavoom still wants to play it. does k8vavoom have it stored somewhere else? ~ this however, is testing the map from editor parameters (loading via directory), so maybe that will go away if I placed it all in a pk3.
|
|
|
Post by ketmar on Dec 26, 2022 2:47:56 GMT -5
it's hard to tell without seeing the full command line used to start k8vavoom, and some other details. it looks like some extra in the path. the engine itself doesn't cache anything extept converted voxels, bsp trees and lightmaps.
|
|
Mr.Rocket
Doomer
Say hello to my BOOMSTICK!
Posts: 15
|
Post by Mr.Rocket on Dec 26, 2022 11:31:47 GMT -5
Ah, disregard. It was actually picking it up from a test.pk3 that I forgot I had in the directory. doh!
|
|
|
Post by 3t0 on Dec 26, 2022 20:26:23 GMT -5
3t0, do you mean something like this? Exactly - thank you! It looks massive! How did you record that (are you on windows)? the engine easily renders hundreds of voxel monster models. I can vouch for that! Sigil was awesome, but since then I played several more slaughtery maps and have had no slowdowns yet. I would still love to have configurable, distance based voxel to sprite switcher, but sadly ketmar is more confident in his optimization capabilities XD. It would also probably complicate lot of stuff internally. Maybe one day. switching to deferred (or combined) renderer will make everything even faster. This is what I wanted to know for some time: whether k8v uses deferred renderer. Seems like not, and it seems it is on your TODO list. I wish we could send you electricity directly , this situation sucks.
|
|
Mr.Rocket
Doomer
Say hello to my BOOMSTICK!
Posts: 15
|
Post by Mr.Rocket on Dec 26, 2022 22:11:52 GMT -5
Exactly - thank you! It looks massive! How did you record that (are you on windows)? Yeah I'm on Windows but the video capture is actually some software that came with my video card, it's a Nivida video card. ketmar , I know I've asked before at some point but maybe something has changed.. Do you have plans to ever add PBR support? ~ btw I lost power a couple times too, well the whole hood did. was because of that seriously COLD winter storm that blew through..
|
|