jval Posted February 27, 2021 (edited) DOOMROCK DOOMROCK is a tool that creates procedural generated rocks. The rocks can be saved as Doom sprites and models with out of the box actor definition for ZDoom, DelphiDoom and RAD, or as voxels in Slab6 vox format or DelphiDoom ddvox format. Downloads v.1.0.2.23 (20210302) Executable (win32): https://sourceforge.net/projects/doom-rock/files/DOOMROCK_1.0/DOOMROCK_1.0.2.23_bin.zip/download Source code: https://sourceforge.net/projects/doom-rock/files/DOOMROCK_1.0/DOOMROCK_1.0.2.23_src.zip/download Repository: https://github.com/jval1972/DOOMROCK Inside the binary distribution there are many free rock/stone textures. The source of these textures is: https://freenaturestock.com https://opengameart.org/ https://www.deviantart.com/ Idea Many thanks to @NiGHTMARE for the idea of procedural rocks :) Algorithm There are a few open sourced rock generators on internet, but none of them was GPL, so I took the challenge to make my own exclusively for DOOMROCK. Using DOOMROCK DOOMROCK is based on my default application template, with a tool palette at the left side and a 3d preview in the rest of the main window. In the left panel there are various input parameters that control the procedural rock generation. There are 2 tabs: Properties: Set the random seed and the mesh creation variables Texture: Select the rock texture The most interesting options are the "Radius Variance", the "Pit Rate" & the "Pit Elevation". You can also play with the seed, to create various rocks. Spoiler To generate a WAD/PK3 file with the sprite, model, voxel and the actor definition script select from the menu File/Export/Sprite to show the Sprite Export Dialog: To export a voxel select File/Export/Voxel to show the Voxel Export Dialog: Supported voxel format are Slab6's vox & DelphiDoom ddvox. Using voxels in DelphiDoom family ports: The produced WAD with the actor definition and the sprite can also contain the voxel as well as all the definitions that DelphiDoom needs. You only have to check the "Generate voxel" checkbox in the "Sprite Export Dialog". Using voxels in ZDoom family ports: Unfortunately, I found out that ZDoom does not support the Slab6's vox format, and I don't have (yet) in my repository a kvx export. Please export the voxel in Slab6 vox format, open it in Slab6 and save it back to kvx. Don't forget to edit the offsets. Then use a lump editor as Slade3 to import the kvx voxel in the WAD, rename it to match the sprite lump name and place it under the VX_START/VX_END namespace. Examples: For DelphiDoom (out of the box): https://sourceforge.net/projects/doom-rock/files/EXAMPLES/rock1_delphidoom.zip/download (WAD file format) https://sourceforge.net/projects/doom-rock/files/EXAMPLES/rock2_delphidoom.pk3/download (PK3 with model and voxel) For ZDoom/GZDoom/K8Vavoom: https://sourceforge.net/projects/doom-rock/files/EXAMPLES/rock1_zdoom.zip/download (edited to add the voxel) https://sourceforge.net/projects/doom-rock/files/EXAMPLES/rock2_gzdoom_k8vavoom.pk3/download (GZDoom/K8Vavoom only, contain md2 model) In game Screenshots: DelphiDoom: Spoiler GZDoom: Spoiler RAD: Spoiler Edited March 2, 2021 by jval 28 Share this post Link to post
ReX Posted February 27, 2021 This simply adds to the prodigious rate at which you're creating new stuff. Excellent! 1 Share this post Link to post
ENEMY!!! Posted February 27, 2021 (edited) Wow. I saw someone else suggest the idea in another thread, I did half-expect that you'd release something like this but didn't expect it to happen so quickly! Edit: I've seen the earlier post which references @NiGHTMARE having suggested it. 1 Share this post Link to post
ENEMY!!! Posted February 27, 2021 Despite their lower resolution, it works well with OTEX flats, too, if you turn the Texture U/V scales up a little from the defaults: Spoiler 4 Share this post Link to post
ketmar Posted February 28, 2021 (edited) somebody stop him! p.s.: they look like polygon models. if it is, why don't export them as MD2/MD3 too? for hw renderers, models are (much) faster to render. 4 Share this post Link to post
jval Posted February 28, 2021 (edited) 21 minutes ago, ketmar said: p.s.: they look like polygon models. if it is, why don't export them as MD2/MD3 too? for hw renderers, models are (much) faster to render. Indeed, the algorithm produces 3d models. These models in the export step are either rendered as a sprite or get voxelized. But.... the is the "File/Export/Obj model" menu item that exports the generated rock as a wavefront obj model. Can md2 models have one frame only? If so, I can try to make a md2 model export in PK3 with all the definitions to run it in source ports out of the box. 0 Share this post Link to post
ketmar Posted February 28, 2021 (edited) 2 hours ago, jval said: Can md2 models have one frame only? yep, sure. and MD3 too. i'd say that it is better to export MD3, tho, because MD2 has lower vertex precision. not that it matters much in this case, of course. maybe both? (yeah, why don't ask for more while i can ;-) 2 Share this post Link to post
boris Posted February 28, 2021 This is really nice. Is there any way to make the rocks "whole", as they are cut off in the middle right now. That's be a cool feature for the voxel/model export. I guess just mirroring the upper part would be fine for a start. 31 minutes ago, ketmar said: yep, sure. and MD3 too. i'd say that it is better to export MD3, tho, because MD2 has lower vertex precision. not that it matters much in this case, of course. maybe both? (yeah, why don't ask for more while i can ;-) What's the benefit of using MD2/MD3 over OBJ for static models? 1 Share this post Link to post
Redneckerz Posted February 28, 2021 Are you kidding me. You pump out new tools quicker than most people pump out levels, @jval. Not only that, but complete with icon's, documentation and the like. And once again its a tool that carries legtimate use. When using DD Terrain, DoomTree and DoomRock, you can essentially make a huge and unique landscape before you start designing a level. A unique author within this community is what you are. Ill guess ill update your Wikipage then with this and the other tool you recently released. :P 2 Share this post Link to post
jval Posted February 28, 2021 2 hours ago, ketmar said: yep, sure. and MD3 too. i'd say that it is better to export MD3, tho, because MD2 has lower vertex precision. not that it matters much in this case, of course. maybe both? (yeah, why don't ask for more while i can ;-) 1 hour ago, boris said: This is really nice. Is there any way to make the rocks "whole", as they are cut off in the middle right now. That's be a cool feature for the voxel/model export. I guess just mirroring the upper part would be fine for a start. TODO list: Export md2 or md3 model Create whole rock 1 hour ago, boris said: What's the benefit of using MD2/MD3 over OBJ for static models? MD2 models are widely supported by many 3d accelerated source ports, the wavefront obj format is not. 1 Share this post Link to post
jval Posted February 28, 2021 1 minute ago, Redneckerz said: Are you kidding me. You pump out new tools quicker than most people pump out levels, @jval. Not only that, but complete with icon's, documentation and the like. The ideas are pumping out of the community, DOOMROCK exists thanks to @NiGHTMARE's mention for a procedural rock generator. 3 Share this post Link to post
ketmar Posted February 28, 2021 1 hour ago, boris said: What's the benefit of using MD2/MD3 over OBJ for static models? not everything out there is GZDoom. 0 Share this post Link to post
ketmar Posted February 28, 2021 15 minutes ago, jval said: Export md2 or md3 model also, can you please make those models closed (i.e. with the bottom poly too)? because only properly closed models can cast shadows with shadow volumes. 2 Share this post Link to post
jval Posted February 28, 2021 Just now, ketmar said: also, can you please make those models closed (i.e. with the bottom poly too)? because only properly closed models can cast shadows with shadow volumes. This should not be a problem, probably find the centroid of the bottom plane and make a triangle fan to the edges. 0 Share this post Link to post
ketmar Posted February 28, 2021 (edited) or use simple ear-cutting, it doesn't matter how optimal the subdivision will be. or even Delaunay triangulation, if you want to try something fun (and get a good triangulator for future projects too ;-). p.s. meh, even 2d BSP will do the trick, let's do it the Doom way! 2 Share this post Link to post
Redneckerz Posted February 28, 2021 20 minutes ago, jval said: The ideas are pumping out of the community, DOOMROCK exists thanks to @NiGHTMARE's mention for a procedural rock generator. So... if we come up with ideas, you will build it? :P Then a COLORMAP generator, haha. maybe a procedural one take takes into account shading (So you can have spooky areas and what not). Joking ofcourse. Just that your quality of output never ceases to amaze me. Its humbling. 2 Share this post Link to post
jval Posted February 28, 2021 3 minutes ago, Redneckerz said: Then a COLORMAP generator, haha. With, or without the Carmack's typo? 0 Share this post Link to post
Redneckerz Posted February 28, 2021 4 minutes ago, jval said: With, or without the Carmack's typo? Oh dear, im rendered absolutely clueless on this one. I say... with? :O :P 1 Share this post Link to post
Gez Posted February 28, 2021 Just now, Redneckerz said: Oh dear, im rendered absolutely clueless on this one. I say... with? :O :P https://doomwiki.org/wiki/Carmack's_typo SLADE's Colorimetry panel includes presets for it and other standard values. https://github.com/sirjuddington/SLADE/blob/b247aab888afe1127f963f5572d81a8985a55446/src/UI/Dialogs/Preferences/ColorimetryPrefsPanel.cpp#L98 https://github.com/sirjuddington/SLADE/blob/b247aab888afe1127f963f5572d81a8985a55446/src/UI/Dialogs/Preferences/ColorimetryPrefsPanel.cpp#L245 1 Share this post Link to post
jval Posted February 28, 2021 (edited) 20 minutes ago, Redneckerz said: So... if we come up with ideas, you will build it? :P I have to like the idea and be able to implement it with an amount of effort that does not take the fun out of the process ;) 11 minutes ago, Redneckerz said: Oh dear, im rendered absolutely clueless on this one. I say... with? :O :P Let's make it optionional :) By the way, I've corrected this in RAD, when I ported the dcolors.c from Doom Utilities source: https://github.com/jval1972/Rad-X/blob/7c63e2baa3b932a9331f143f29b6d4487200e500/Radix/radix_palette.pas#L246 0 Share this post Link to post
Redneckerz Posted February 28, 2021 2 hours ago, Gez said: https://doomwiki.org/wiki/Carmack's_typo SLADE's Colorimetry panel includes presets for it and other standard values. https://github.com/sirjuddington/SLADE/blob/b247aab888afe1127f963f5572d81a8985a55446/src/UI/Dialogs/Preferences/ColorimetryPrefsPanel.cpp#L98 https://github.com/sirjuddington/SLADE/blob/b247aab888afe1127f963f5572d81a8985a55446/src/UI/Dialogs/Preferences/ColorimetryPrefsPanel.cpp#L245 I have now learned that whenever i will envoke something related to Colormap, Slade will appear. I am sure this is some kind of mathematical law. Thanks for the links by the way. Now i actually recall having read that when reading on Colormap history - The name of the error however didn't register. 1 hour ago, jval said: I have to like the idea and be able to implement it with an amount of effort that does not take the fun out of the process ;) The (annoying?) thing is that there is actually quite a lot of this available - Rachael's Fogger is what it says on the tin, Jmickle has had a Colormap generator and Slade is probably the go-to answer for anything Colormap related. I am not sure. I am missing something to the effect of Inkworks, but in Windows and with an editor screen like DoomTree/DoomROCK but purely for changing/creation of Colormaps. On the other hand maybe i shouldn't be such a whiny lownose about it and just start experimenting. 2 hours ago, jval said: Let's make it optionional :) By the way, I've corrected this in RAD, when I ported the dcolors.c from Doom Utilities source: https://github.com/jval1972/Rad-X/blob/7c63e2baa3b932a9331f143f29b6d4487200e500/Radix/radix_palette.pas#L246 Completely out-of-the-blue question on my end, but if this was ported, does this mean that COLORMAPS for RAD can be made with something like Slade? Its likely a silly question given Radix looks so similar to Doom anyway but confirmation never hurted anyone. 0 Share this post Link to post
jval Posted February 28, 2021 5 minutes ago, Redneckerz said: Completely out-of-the-blue question on my end, but if this was ported, does this mean that COLORMAPS for RAD can be made with something like Slade? Its likely a silly question given Radix looks so similar to Doom anyway but confirmation never hurted anyone. Yes, just the lump must be renamed to "SHADES" to be able to use it. Also RAD supports custom colormaps with the Boom line 242 (upper texture of front sidedef defines the custom colormap). Spoiler 2 Share this post Link to post
Mr.Rocket Posted February 28, 2021 (edited) Is it possible to have DOOMROCK make an object with completely flat sides to it? For example a brick broken in half which would otherwise not be as easy to do in map editing. ~ maybe not the best example heh, we'll say it was a really over detailed brick fragment. Or is this something that could be done with the Seed variable? so 1 would be a cube and 2 would be an angled cube of sorts. ~ maybe it could start as a cube and maybe gradually turn into a sphere shape as the Seed was increased to its highest value, or is it possible that it could even work that way? Edited February 28, 2021 by Mr.Rocket 1 Share this post Link to post
thelazyqdude Posted March 1, 2021 How?!? How how how HOW are you so productive?! In all seriousness this looks really nice. (as usual :P) I'm definitely making a map with these tools to brush up on my outdoor area skills... 2 Share this post Link to post
jval Posted March 2, 2021 (edited) Time for a nice update (ver. 1.0.2.23) The most important change is supporting models for source ports. Downloads Executable (win32): https://sourceforge.net/projects/doom-rock/files/DOOMROCK_1.0/DOOMROCK_1.0.2.23_bin.zip/download Source code: https://sourceforge.net/projects/doom-rock/files/DOOMROCK_1.0/DOOMROCK_1.0.2.23_src.zip/download What's new: I've tried to address the requests by @boris ("whole" rock), @Mr.Rocket (flat sides) and @ketmar (models with closed bottom using the Delaunay triangulation) So, the most important new things are: It can conditionally generate a complete rock. Use the appropriate checkbox on the Properties Panel Flat side control (all 6 planes). Use "X/Y/Z Positive/Negative Cut" sliders on the Properties Panel Default export format is PK3 Out of the box model export in PK3 files that contains actor script, sprite, model, model definition and voxel. Tested with GZDoom, K8Vavoom & DelphiDoom (voxel option available only for DelphiDoom) Many new properties to control the rock generation procedure Stand-alone MD2 model export with closed bottom (using the Delaunay triangulation algorithm) A new toolbar at the right part of the screen with easy access to "Export Sprite", "Export Voxel" & "Export MD2 Model" commands. The enriched Properties Panel: Spoiler The new toolbar: Spoiler The new Export dialog: Spoiler The default export format is PK3. WAD is also available. In the next table you can see what is supported, depending on Source Port and on export format: Notes: The export procedure sets the MODELDEF and VOXELDEF scale according to the values of the actor definition script. In DelphiDoom/RAD export I used the DDMODEL format (can be edited/viewed with the DD_MODEL editor) In GZDoom/K8Vavoom I used the MD2 model format. If we don't have a "whole" rock the bottom is closed using that triangulation function I mentioned above. If you want the sprite to match the actor definition size, you must do it manually using the slides in the Preview group of the Export dialog, or edit the script to provide the appropriate scale. New examples: DelphiDoom & RAD: https://sourceforge.net/projects/doom-rock/files/EXAMPLES/rock2_delphidoom.pk3/download GZDoom/K8Vavoom: https://sourceforge.net/projects/doom-rock/files/EXAMPLES/rock2_gzdoom_k8vavoom.pk3/download Some in-game screenshots with models DelphiDoom: Spoiler GZDoom: Spoiler K8Vavoom: Spoiler RAD: Spoiler Edited March 3, 2021 by jval : Fix typo 7 Share this post Link to post
Redneckerz Posted March 2, 2021 I think we have to conclude that Jim Valavanis, otherwise known as @jval is a sentient being sent to Earth to showcase how productivity in optimal form looks like. My own work ethic is based on being as iterative and detailed as possible - But Jim is entirely in a league of his own. So complete each and every aspect of his work is, even at Alpha quality.. His alpha quality is often equal to beta or final quality code by other skilled programmers. I wish i was even slightly exaggerating here. But i am not. There are some folks in here that are godlike mappers, or godlike spriters - But Jval's programming skill is highly exceptional. Im talking Xttl/Kgsws levels of leetness, right here. Thank you, Jval. 5 Share this post Link to post
Murdoch Posted March 3, 2021 4 hours ago, Redneckerz said: I think we have to conclude that Jim Valavanis, otherwise known as @jval is a sentient being sent to Earth to showcase how productivity in optimal form looks like. From the same race as Carmack perhaps? 4 Share this post Link to post