EDuke32 2.0 and Polymer! "talk about the wonders of EDuke32 and the new renderer"
#2480 Posted 19 September 2011 - 08:59 PM
This post has been edited by Captain Awesome: 19 September 2011 - 09:00 PM
#2481 Posted 19 September 2011 - 09:16 PM
Captain Awesome, on 19 September 2011 - 08:59 PM, said:
http://dukerepositor...86.html#msg7286
#2482 Posted 19 September 2011 - 09:32 PM
Captain Awesome, on 19 September 2011 - 08:59 PM, said:
So you wouldn't use Polymost either then? My opposition is mostly about people asking that I port the Polymost cube conversion code to Polymer since it's "already there". I did say that actual volume rendering would come in the end because it's exciting new tech and always fun to mess with, but that won't be in until everything else is. The little square billboards that the software renderer has got going on is probably the most basic way of going about it, but it's still nowhere as braindead as the Polymost code.
#2483 Posted 20 September 2011 - 06:32 AM
#2484 Posted 20 September 2011 - 07:51 AM
#2485 Posted 20 September 2011 - 01:52 PM
#2486 Posted 20 September 2011 - 01:55 PM
Plagman, on 19 September 2011 - 09:16 PM, said:
Dig up some ancient quote from when I was explicably more of a dumbass.
Plagman, on 19 September 2011 - 09:32 PM, said:
I wasn't using Polymost mainly because of many strange graphical inconsistencies between it and the original renderer (though, slowly over time most of these issues were being nixed out until Polymer came around.) However, I never had any reason to use Polymost over the classic renderer. Polymer on the other hand has a whole host of potentially useful things to it. So, unless I'm reading your post wrong, why not import the code from the classic renderer if it's much more simple, and I assume not that CPU intensive?
Tea Monster, on 20 September 2011 - 06:32 AM, said:
Nonsense. The other side of the coin could say why don't you use some modern engine? In fact, in the case of this particular bit, such an argument is completely stupid because Duke3D never had voxels, proper ROR, or advanced coding effects. However all these things, while somewhat modern can still be used to create an experience one could have imagined in the days of old. Not only that but some people actually like the artistry that smaller resolutions require, it is a much more limited work space and all the more suited to someone's individual art style. Ever notice how Halo and Call of Duty don't look that much more different? However, Blood and Doom have distinct art styles? It's only because smaller resolutions need more room for artistic liberty. I don't play or make games to be 'real life,' but rather to be an artistic interpretation of life or even just complete out-there style fiction. It's more fun and interesting.
DavoX, on 20 September 2011 - 07:51 AM, said:
Pretty much. Voxels fit right in there for 2.5D games, kinda makes you wonder why they weren't more prominent.
Tea Monster, on 20 September 2011 - 01:52 PM, said:
Hogwash. If anything voxels are the way of the future.
This post has been edited by Captain Awesome: 20 September 2011 - 01:58 PM
#2487 Posted 20 September 2011 - 03:04 PM
DavoX, on 20 September 2011 - 07:51 AM, said:
It's ironic to bust in a discussion claiming that people are missing stuff when you obviously missed most of it.. I never claimed that you should model something to make it look like a voxel, that would be stupid. My point is that you wouldn't gain anything from using the Polymost voxel code over just converting your voxels to models offline, saving a bunch of processing power, opening up tons of possibilities that you may not or may not use, and without further damaging the sanity of the EDuke32 codebase. And of course he prefers voxels because he prefers voxels...
You can't use the code from the software renderer either, because it's from a software renderer. You can't really mix software and hardware rendering like that, which is why implementing voxels _properly_ would require more work than the copy-of-pasting of code that people have been nagging me to do. I believe prioritizing that work before other more critical stuff would be ill-advised.
I'll try to make it clearer:
- People want voxel support
- I tell them it won't be for a long while because it's pretty much the last thing on my list
- They tell me that Polymost already has voxel support so why can't I just copy-paste that code and be done with it? That can't be that much work, right?
- No, because this code is inferior to just converting your models ahead of time in _every_ way. You should really do that in the meantime, you'll get all the features of Polymost voxel support and more if you want them.
I'm not trying to dismiss people who like voxels as silly even though it's personally not my thing. Tea Monster is very right that the way of Polymer is the future. That means that volume rendering will be implemented properly and using the latest techniques. Using the code from Polymost would just be a step back and again, it wouldn't provide anything over just converting your voxels to MD3 ahead of time, just take things away. I hope that's clear now, because I've been yelling that at the top of my lungs for the last 15 posts or so.
#2488 Posted 20 September 2011 - 04:31 PM
Plagman, on 19 September 2011 - 08:34 PM, said:
If anything, we should be removing similar idiocy going on in EDuke32. People should convert their MD2s once and be done with it, and we can remove a whole expensive conversion step and rotting codepaths that constantly introduce bugs. The voxel code in Polymost has all these things and then more weird rendering quirks that behave only slightly differently from models, giving more weird shit to modders to think about when they're trying to get things done. All the Polymer model preprocessing crap should also be thrown into an external tool that only does it once instead of taking half a minute spinning your CPU whenever you start the game with the HRP.
Plagman, on 19 September 2011 - 09:32 PM, said:
Plagman, on 20 September 2011 - 03:04 PM, said:
I'll try to make it clearer:
- People want voxel support
- I tell them it won't be for a long while because it's pretty much the last thing on my list
- They tell me that Polymost already has voxel support so why can't I just copy-paste that code and be done with it? That can't be that much work, right?
- No, because this code is inferior to just converting your models ahead of time in _every_ way. You should really do that in the meantime, you'll get all the features of Polymost voxel support and more if you want them.
I'm not trying to dismiss people who like voxels as silly even though it's personally not my thing. Tea Monster is very right that the way of Polymer is the future. That means that volume rendering will be implemented properly and using the latest techniques. Using the code from Polymost would just be a step back and again, it wouldn't provide anything over just converting your voxels to MD3 ahead of time, just take things away. I hope that's clear now, because I've been yelling that at the top of my lungs for the last 15 posts or so.
Dropping MD2 support makes sense for the future but mods will break. That doesn't concern me.
I am concerned about the Polymer preprocessing. It's important that exported MD3 files be able to be re-imported to make modifications and renders, especially if the source is lost. Speaking of which, MD3 support should be dropped too for something more modern.
I understand your point of view on voxels. I will never ask you about them again. I will work to write an on-the-fly converter for EDuke32 which is optimized in code size, conversion time, and in-game performance. That is the solution, especially so that future optimization improvments can be applied to the voxels, and because this will need to be done for Blood and Shadow Warrior anyway. However, if I fail, volume rendering will come eventually.
Tea Monster, on 20 September 2011 - 06:32 AM, said:
Looks are not everything. I could write a long list of everything added to EDuke32 and even the Polymer renderer that are not specifically related to highres textures and 3D models. Performance, mouse aiming fixes, resolutions, stability, modding...
Captain Awesome, on 20 September 2011 - 01:55 PM, said:
I side with Plagman on this one. 256 color palette-limited, 256x256x256 KVX files are not the way of the future. They are, however, a defining characteristic of BUILD.
#2489 Posted 20 September 2011 - 05:05 PM
You say your understand my point of view but claim you want the conversion to happen on-the-fly. Please let it be standalone.
Hendricks266, on 20 September 2011 - 04:31 PM, said:
This also bugs me greatly, as lots of people like to jump on that bandwagon. What do you propose as a replacement? What exact benefits would it provide? If you say skeletal animation, that's wrong; you'd implement support for a model format that has skeletal animation _because_ you implemented support for it in the engine beforehand, not the opposite. Implementing MD5 support before a complete rewrite of the animation system would be a step backwards since you'd have to pre-render all the animations to static meshes.
If you say the lack of tools because MD3 is growing old WRT community support, I maintain an MD3 exporter and ASE importer for Blender for that exact reason.
#2490 Posted 20 September 2011 - 05:19 PM
This post has been edited by Marked: 20 September 2011 - 05:20 PM
#2491 Posted 20 September 2011 - 05:22 PM
#2492 Posted 20 September 2011 - 06:00 PM
Hendricks266, on 20 September 2011 - 04:31 PM, said:
I don't think you quite got what I was saying. I was rather saying that even though voxels are old technology in his eyes, that they were in fact ahead of their time because that's probably what the future of gaming will come down to. It really seems to me that mostly only people before the age of the source code get a lot of stuff like the clamoring for voxels. But whatever, I find Plagman's point of view much clearer in this case, but I hope that sooner than he thinks they can be implemented proper, or at least someone can come up with a good KVX-MD3 converter.
This post has been edited by Captain Awesome: 20 September 2011 - 06:01 PM
#2493 Posted 20 September 2011 - 06:14 PM
Plagman, on 20 September 2011 - 05:05 PM, said:
Please elaborate on what the preprocessing does; I forgot to ask you that before. As long as the results can be opened by other programs (in other words, so the output files as distributed in the HRP won't be orphaned) then I think that's a great idea.
Plagman, on 20 September 2011 - 05:05 PM, said:
I understand it, that doesn't mean I agree with it. I understand that you are worried about the three factors I pointed out in my post:
1. source code bloat
2. waste of CPU time/cycles/electricity for having to re-convert the voxels every playtime
3. unoptimized resulting models
I agree that these factors need to be mitigated for an effect implementation. However, I disagree that their existence should preemptively stop any work on overcoming them. It's my time, I'll waste it as I choose. In any case, a kvx2md3 would be a good thing to have.
(#2 could be solved by implementing a "model cache" if you will, but that has its own disadvantages.)
Plagman, on 20 September 2011 - 05:05 PM, said:
I didn't know any of that, but I'm glad you explained that in a public place. I think the main concern was the loss of bones so modifications are difficult without the source, and sources are lost all the time and withheld too for good reasons.
#2494 Posted 20 September 2011 - 06:45 PM
Hendricks266, on 20 September 2011 - 06:14 PM, said:
The preprocessing does a few differents things:
- It calculates the bounding box information for the models; this is part of the MD3 spec, but none of the exporters actually seemed to correctly fill these members. I assume Quake 3 didn't actually use them, hence the disregard.
- It repacks all the geometry from the formats used in MD3 to raw data that can directly and efficiently be fed to a GPU
- It calculates the TBN basis for every triangle, which is needed to use tangent-space normal maps
I would probably want this information to be dumped in a companion file to the MD3 model, such that the MD3 file by itself can still be used as-is by other things.
Hendricks266, on 20 September 2011 - 06:14 PM, said:
1. source code bloat
2. waste of CPU time/cycles/electricity for having to re-convert the voxels every playtime
3. unoptimized resulting models
I agree that these factors need to be mitigated for an effect implementation. However, I disagree that their existence should preemptively stop any work on overcoming them. It's my time, I'll waste it as I choose. In any case, a kvx2md3 would be a good thing to have.
(#2 could be solved by implementing a "model cache" if you will, but that has its own disadvantages.)
You know what they say: freedom with your own code stops where the freedom of the other dude's code begins. A model cache would essentially be the exact same thing as an offline converter too, just lumped in there for no good reason. I really think a good and efficient suite of tools is the way to go here.
About 3), most of what I was talking about on IRC regarding potential for optimization was based off the assumption that the Polymost code wasn't repacking voxel colors to a texture. I re-read it a few days ago and it does, which means that doesn't really apply anymore. Using the same logic verbatim should pretty much do what we want on the first try.
#2495 Posted 21 September 2011 - 12:41 AM
#2496 Posted 21 September 2011 - 05:52 AM
Captain Awesome, on 20 September 2011 - 06:00 PM, said:
The future of gaming may use point-cloud technology, but lets be honest about this and admit that you only want to see colored lights on those 64x64(x64) pixel voxels. Saying that the sort of voxels that you want are the future of gaming is like saying that a couple of cavemen with clubs in a dugout canoe is a guided missile cruiser. Polymer should be used for what it was intended so that EDuke32 and Duke Mods in general can move FORWARDS, not backwards. Spending a shed-load of time making a 20 year old game look like a 20 year old game is a waste of time.
#2497 Posted 21 September 2011 - 09:40 AM
James, on 21 September 2011 - 12:41 AM, said:
They are, yes. That might explain some of it; were you using Polymer at any point? You'd also get the pre-processing pass which is known to take a pretty long time as well. If you have tons of high-res assets and models the startup times generally won't be stellar as all the DEFs are parsed at startup.
#2498 Posted 21 September 2011 - 10:58 AM
Plagman, on 21 September 2011 - 09:40 AM, said:
I wasn't using polymer but I did notice that startup times increased greatly with 'newer' snapshots (This was last year I'm talking about though, I haven't tried IW with a new version in a long time since it's finished and all)
#2499 Posted 21 September 2011 - 12:19 PM
#2500 Posted 21 September 2011 - 01:44 PM
Tea Monster, on 21 September 2011 - 05:52 AM, said:
Voxels are a feature that have been requested since the beginning of time. Stop being a dumbass, just because you don't want a feature doesn't mean that someone else doesn't value it. You'd have a hell of a fun time trying this shit over in the Doom community.
This post has been edited by Captain Awesome: 21 September 2011 - 01:44 PM
#2501 Posted 21 September 2011 - 04:47 PM
#2502 Posted 21 September 2011 - 05:23 PM
#2503 Posted 21 September 2011 - 05:32 PM
#2504 Posted 22 September 2011 - 01:01 AM
Plagman, on 21 September 2011 - 12:19 PM, said:
Just checked IW with a new snapshot and yeah it starts up much quicker than it ever did
But I've noticed that globalsound doesn't seem to work reliably. I use it for cutscene voiceovers and stuff in IW and AMC TC and half the time it doesn't play the sound at all. This bug's been around for some time but I always thought it was my laptop and not an eduke32 issue, but I swear I've seen other people report it as well.
This post has been edited by James: 22 September 2011 - 01:02 AM
#2505 Posted 22 September 2011 - 09:22 AM
Hendricks266, on 21 September 2011 - 04:47 PM, said:
Looks like your libbfd.a needs libintl_*printf symbols and can't find them at build time. I have no idea where they reside (did a quick search for them in every *.a file in my mingw install).
Tetsuo, on 21 September 2011 - 05:32 PM, said:
Maybe you're mixing up saves of 32 and 64-bit sessions? Just an idea, even if it's a bit far-fetched. What's happening precisely?
James, on 22 September 2011 - 01:01 AM, said:
But I've noticed that globalsound doesn't seem to work reliably. I use it for cutscene voiceovers and stuff in IW and AMC TC and half the time it doesn't play the sound at all. This bug's been around for some time but I always thought it was my laptop and not an eduke32 issue, but I swear I've seen other people report it as well.
I noticed these sound dropouts too, especially with custom mods. If you're getting this reliably (and reasonably quickly), you could do us a huge favor by attempting to bisect the bug. Just start with some old version X, if that doesn't show the bug, look at version round((newest-X)/2), and so on...
#2507 Posted 22 September 2011 - 10:11 AM
Helixhorned, on 22 September 2011 - 09:22 AM, said:
Maybe you're mixing up saves of 32 and 64-bit sessions? Just an idea, even if it's a bit far-fetched. What's happening precisely?
No well firstly I never loaded an old save but I did notice it hasn't been showing saves properly at all no thumbnails and incorrect level names then I try saving over it and it didn't save. So then I tried removing the old saves to see if it just doesn't like saving over them and saving and it still doesn't work it forgets the savegames the next time I launch it and wont load any.
#2508 Posted 22 September 2011 - 01:47 PM
Helixhorned, on 22 September 2011 - 09:22 AM, said:
I added "-lintl" to the Makefile entry for ebacktrace1.dll and it compiled after that, but the string "libintl-8.dll" appears in the output leading me to believe it has an unwanted dependency.
#2509 Posted 25 September 2011 - 02:22 PM
Tetsuo, on 22 September 2011 - 10:11 AM, said:
This is very strange and I can't reproduce it with vanilla Duke savegames. Are you using a mod? I could have a look at the produced savegames if you sent them over.
Speaking of OSX, does anyone else get 'FBO initialization failed' messages? (And subsequently, shadows not rendering.)
Plagman: glCheckFramebufferStatusEXT returns GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT for me.

Help
Duke4.net
DNF #1
Duke 3D #1


