|
Post by ketmar on Mar 20, 2022 17:40:38 GMT -5
Compared to md2 rendering, are voxels much better in performance? much, much worser. like, magnitudes worser. that "pixelated" look requires fuckton of triangles. that's basically why i started developing "voxelib" — because here each removed triangle matters. yet even with the best possible tesselation, even the smallest voxel models can easily hit 2000-3000 tris; and more complex ones are at 20k-30k count. that's for one model. voxelib manages to at least half the triangle number (and sometimes it can do MUCH better), but it's still higher than many today's "high-poly" models, lol.
|
|
Lobo
Doomer
Posts: 594
|
Post by Lobo on Mar 20, 2022 17:54:53 GMT -5
Ouch!
|
|
|
Post by ketmar on Mar 20, 2022 18:26:12 GMT -5
just to make it somewhat more… visual. here's the medikit voxel from reikall pack: and stats with "ultra" optimisation level: rebuilt model: 796 tris, 1342 vertices. the fuckin' box. already at 800 triangles. without t-junction fixing: 278 quads, 556 tris, 1112 unique vertices still 556. and this is quite simple model, it has a lot of big flat surfaces to optimise. the usual results are MUCH worser.
|
|
|
Post by mayhemicdestrvctor on Apr 4, 2022 8:31:47 GMT -5
that looks really awesome , how did you make that box , and can i play with these boxes in gzdoom ? because i forgot how to install the k8vvaom
|
|
|
Post by ketmar on Apr 4, 2022 22:49:26 GMT -5
that looks really awesome , how did you make that box , and can i play with these boxes in gzdoom ? because i forgot how to install the k8vvaom i didn't made it. just go there, for example, and download zdoom voxel pack.
|
|
|
Post by mayhemicdestrvctor on Apr 5, 2022 1:42:58 GMT -5
oh okay. are there also voxels for enemies and the weapons i mean it would really be awesome to make the game be 3d like quake
|
|
|
Post by ketmar on Apr 5, 2022 23:17:25 GMT -5
lol. now i am banned for a week for "trolling" on DW. this time for politely telling shitward850 to stfu. this is slightly more than i willing to accept, so my affair with DW is over. this is the only Official k8vavoom Thread for now.
i know that it basically means that k8vavoom will go off the radars of most potential players. so be it. tbh, this whole thing gone off-rails long time ago, and now i can slightly change the priorities, and pay more attention to features i consider interesting instead of "end-user" features.
just in case, it doesn't mean that k8vavoom development stopped or something, and it doesn't mean that i stopped caring about mod compatibility. it just means that mod bugfixes may be slightly slower now, and i will use more of my time to try various experimental things.
|
|
Lobo
Doomer
Posts: 594
|
Post by Lobo on Apr 6, 2022 0:54:54 GMT -5
It's only a week, and if you decide not to go back I can bump the thread with some cut-and-paste from this one when there is something new.
|
|
|
Post by ketmar on Apr 6, 2022 1:28:53 GMT -5
it's not about "being banned for a week", but more about "i don't want to be there anymore" due to… let's say incompatibility with some members of DW moderation team. DW is not the place i loved anymore.
but yeah, if you're willing to "repost" things from here to DW thread, it will be good, i think, thank you! i have nothing against that, and don't really want to leave DW people without any info, i just won't do it myself anymore.
|
|
|
Post by mayhemicdestrvctor on Apr 6, 2022 3:30:08 GMT -5
i support your decision
|
|
|
Post by mayhemicdestrvctor on Apr 6, 2022 4:08:51 GMT -5
leave me alone now.
|
|
|
Post by mayhemicdestrvctor on Apr 6, 2022 4:13:23 GMT -5
i said you can leave me alone but you dont stop. and with that i have reported one of your posts where you say this. and its your fault that it drives you crazy because you kept saying this until you forced me to report it. and i will not report every single of the posts but i reported one of them. and you dont want to leave me alone with that so i had to do it , sorry. so please stop saying this to me okay?
|
|
|
Post by ketmar on Apr 6, 2022 4:33:24 GMT -5
please, stop. i can create offtopic posts by myself, there's no need to help me doing that.
|
|
|
Post by mayhemicdestrvctor on Apr 6, 2022 6:18:18 GMT -5
oh. im sorry. i was talking to joe ilya but i noticed all his posts are gone , because he was saying some thing rude to me , he said the same thing like 40 times to me in a row and i told him to stop , i said i will report him and he didnt stop so i had to report him and now he is gone. i have no idea why. maybe 40oz took care of him. but he is gone so , everything is fine. i am sorry he was doing this here , and that this confuses you right now.
|
|
|
Post by ketmar on Apr 6, 2022 6:29:38 GMT -5
mayhemicdestrvctor, the best way to deal with things like that is simply ignoring them. you are not obliged to reply to any post directed at you. i think that's what they were trying to tought you: just ignore the things you don't like.
|
|
|
Post by mayhemicdestrvctor on Apr 6, 2022 7:02:56 GMT -5
the posts were directed at me. every time i posted , joe has posted 1 minute later to shut up. and only when i posted. and i told him i will ignore him when he does that.
|
|
|
Post by ketmar on Apr 6, 2022 7:14:02 GMT -5
and you have all the power to stop it: just don't reply. then he'll have nothing to reply on too. that's how it works: if you don't like it, and decided to not participate, then the whole issue just goes away by itself.
|
|
|
Post by mayhemicdestrvctor on Apr 6, 2022 7:14:56 GMT -5
oh. okay thanks for your advice. i am going to do that if some one tries to be rude to me.
|
|
|
Post by ketmar on Apr 7, 2022 2:18:42 GMT -5
and some interesting news. i'm trying to teach wall decals to spread not only to neighbour walls, but to floors and ceilings too. like this: there are some problems with that, and it will never work "ideally", but i hope to get something "acceptable", at least for blood. ;-) the problem is that historically, decals in Doom sourceports are really "stickers". just imagine a paper sticker glued to the wall. this is very different from "volumetric decals" tech used in most other engines. the problem is that while it is quite easy to "glue" the sticker onto walls, it is not always possible to properly do that with "wall+floor" combo. imagine a sharp corner, like this: "/\". now try to put a sticker into the corner. the part that covers the floor cannot be put "correctly", because "overflows" from both walls will overlap on the floor. now imagine putting the stiker on the other, "outer" side of the corner. now instead of overlapping, we don't have enough sticker to cover the floor (the sticker has to be "torn" to be properly glued). there is simply no way to do pixel-perfect and "logical" decal (sticker) placement in many cases. now i am trying various approaches to make it look… at least not very bad. it may take some time, and maybe i won't find a good solution at all. but it is worth trying anyway. ;-)
|
|
|
Post by mayhemicdestrvctor on Apr 7, 2022 2:37:31 GMT -5
thats awesome , i think the way you did it on this screenshot looks already really good. but you should remove the black color from it. and the paper glue effect is because most old games are like that but i like that. so i think it would be okay if it was like that. and it looks really good to me.
|
|
|
Post by camper on Apr 8, 2022 4:49:13 GMT -5
Hey! Now I am and here. Happy to salute everyone.
|
|
|
Post by mayhemicdestrvctor on Apr 8, 2022 5:07:53 GMT -5
hello. i welcome you
|
|
|
Post by ketmar on Apr 9, 2022 3:46:04 GMT -5
so, while working on decals, i accidentally wrote Yet Another CCD implementation. what is CCD? let me explain how Doom movement works first. open spoiler to read boring wall of text. in Doom, any movement is done by the series of "mircoteleports". i.e. to move something, it is teleported to the destination, then the engine checks if the object is not stuck in a geometry. if it stuck, the engine tries to find the "best" wall to slide along, and does some trickery.
there are many problems with this approach; the most prominent one is that you can't move with high velocities (because the object could skip some walls while doing "teleport check"). that's why, for example, ZDoom has "FastProjectile" actor class. that class has it's own movement implementation: it splits one long movement to many small steps, and "microteleports" by a smaller amount, hoping to not miss anything along the way. later, some sourceports implemented such "split-teleporting" for all mobjs, because CPUs are much faster now, and it's better to stay safe than to expect modders to always use proper actor class. ;-)
now, there is another approach to collision detection, called "continuous collision detection", or CCD for short. it works in a completely different way: instead of "teleport and check" approach, CCD checks all possible obstacles along the way, one by one. it checks if the moving object can reach and hit that obstacle, and if it can, CCD code calculates exact hit point. this way the object will never miss any wall, no matter how high its velocity is.
"but why Carmack didin't used CCD in Doom?" you may ask. there are several reasons. first, Carmack simply didin't knew that it is possible back then. he figured out the correct algorithm for that at Q3 development time. Q1 was using separate "augmented" BSP trees for different AABB sizes, for example. only in Q3 Carmack finally realised how to implement that properly by using the same BSP tree that is used for rendering, and for any AABB size.
and second, mobjs in vanilla Doom have limited speeds, so doing "microteleporting" was simply much faster, because it is O(1) blockmap check, and BSP CCD is O(log n), or even worser.
yet today we have mods, and mod authors often using fast projectiles with small radius. for such projectiles, CCD looks like a better approach. also, i simply wanted to implement CCD for Doom. ;-)
another problem is that Doom BSP is "inverted". Quake BSP holds solid space in leafs, but Doom BSP holds empty space instead. checking collision with convex solid volume is easy and cheap, but there is no good algo to do that for "inverted BSP".
i tried several implementations, but neither was good enough. they all worked, more-or-less, but each had some fatal flaws. the current one is still not ready for "production use", but it is way closer to it. it is the first time i was able to use it for player movement without stucking (almost), or jumping onto very high ledges. and it doesn't require any additional info besides what the engine already has. i.e. it is using the same BSP that is used for rendering, and there is no need to augment subsectors or lines/segs with additional planes. this is the first time when i feel that i'm on the right path.
of course, don't expect it in the next k8vavoom build; this is just R&D work i'm doing all the time. i don't think that it is possible to completely replace Doom coldet code without rewriting huge parts of AI and physics. also, CCD algo completely ignores things for now, so you can't collide with a monster, or pick up some ammo.
yet having fast and universal "trace box" API could be handy to implement various other things. if (when ;-) i solve problem with things, it could be used for tracing fast projectiles. it could also be used for chasecam, bot pathfinding, and many other interesting things. also, if someday i manage to make it good enough to completely replace "microteleporting", it will open a way for adding Quake-like 3d moving meshes (think of 3d polyobjects, but without restrictions at all).
don't hold your breath, tho, it's still very early R&D, and may never happen at all. i simply love to tell you about some things i'm experimenting with, so you won't think that small amount of commits into the main k8vavoom repo means that i'm doing nothing. ;-) i have more than one such R&D Doom project, and some of those already helped to improve the engine.
|
|
kvsari
Doomer
I like mapping.
Posts: 327
|
Post by kvsari on Apr 9, 2022 7:12:17 GMT -5
That's very cool. CCD will fix skipping W1 trigger linedefs because you SR50'd over it at a bad timing. I have gotten into the habit of doubling most of my linedefs by 8mu to counter this problem. Of course at -complevel 2 I daresay there won't be any CCD but it could be something for -complevel 21 or maybie 22? Please keep going with your research.
|
|
|
Post by ketmar on Apr 9, 2022 7:46:20 GMT -5
thank you! yet, there are some incompatibilities with CCD, like in "T" case (when the box is going to hit a vertical line, and the box is moving strictly vertically too). such lines will be ignored, because lines have no "depth". not that creating maps relying on such bad geometry is a good practice, though (and i may try to detect such cases, and add some artificial bounding planes). wall grabbing trick won't work anymore too.
so yeah, i will prolly have to keep the old code anyway, and implement two kinds of physics code if i'll decide to introduce CCD. but it won't be the fist such hack in the engine anyway, and it worth trying. and i hope that other advanced engines will be able to use that code to improve their physics too. at least i'm planning to release a simple standalone example that contains only very barebone rendereing and movement code. that is, if i'll be able to make it work. ;-)
|
|