[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

I've made a Build Engine (Duke Nukem 3D) map to OBJ converter

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 97
Thread images: 51

File: scduke3.png (181KB, 640x480px) Image search: [Google]
scduke3.png
181KB, 640x480px
I've made a Build Engine (Duke Nukem 3D) map to OBJ converter
>>
File: scduke5.png (189KB, 640x480px) Image search: [Google]
scduke5.png
189KB, 640x480px
Another example
>>
File: povduke5.jpg (162KB, 2048x256px) Image search: [Google]
povduke5.jpg
162KB, 2048x256px
Cylindrical panorama with radiosity and textures, rendered in povray, with somewhat incorrect texture coordinates
>>
File: povduke2.jpg (119KB, 2048x256px) Image search: [Google]
povduke2.jpg
119KB, 2048x256px
Another panorama of the bathroom in the first level
>>
you're a superstar
>>
File: povduke7.jpg (180KB, 2048x256px) Image search: [Google]
povduke7.jpg
180KB, 2048x256px
>>563664
What do you mean? Are you making fun of me? This is 4chan and I'm very sensitive. I need to know.
I have more work to do but I'll publish the python source code shortly in case anyone's interested. Makes it possible to generate quake-style lightmaps for duke nukem levels.
>>
this is some abstract kind of bait
>>
File: povduke10.jpg (186KB, 2048x256px) Image search: [Google]
povduke10.jpg
186KB, 2048x256px
I just wanted to get some feedback
>>
>>563684
Good job super star xx
>>
>>563660
>>563661
>>563662
>>563663
>>563674
>>563684
Serious question, what is the point of this? What are you trying to achieve?
>>
File: 10_37_46.png (574KB, 642x543px) Image search: [Google]
10_37_46.png
574KB, 642x543px
>>563684
>>
>>563692
I have 2 goals in mind:
1. Make light maps and add them to the eDuke engine or some other source port of the game, or import the OBJ files into Godot or Unity, I don't know yet
2. To use the Build Engine editor as a modeler for environments for my own statically rendered stuff

I can model stuff in it, which is fun and easy, and then substitute the bitmap textures with high quality procedural ones. I also detect the sprite insertion points and I can include other 3D models based on those and so much other stuff really

I can also make all sorts of panoramas for VR or maybe a Myst-style game?
>>
File: scduke8.png (179KB, 640x480px) Image search: [Google]
scduke8.png
179KB, 640x480px
Forgot to include another example, just for fun
>>
File: povduke11.jpg (167KB, 2048x256px) Image search: [Google]
povduke11.jpg
167KB, 2048x256px
This is the last one I promise. It took 5 minutes 55 seconds to render in Povray on a Raspberry Pi, single threaded. The greyscale stuff above is rendered in Sunflow. No expensive modelling or rendering package involved.
>>
How does it handle maps with intersecting sectors?
>>
>>563700
On the geometry side there's nothing hard except when two adjacent sectors with different slopes meet. That's the hardest case and it's not even that hard. It's also rare and avoidable.
If by "intersecting sectors" you mean the trick some mappers use to give the illusion of multiple floors by drawing overlapping sectors, the answer is: it doesn't handle that case and it doesn't need to because you can actually make multiple floors. You can import how many different maps you want stacked on top of each other. If you set the parallaxing bit for a sector makes, it the floor or ceiling disappear. You can then attach another map above or below, or a radiosity light source.
On the texturing side the main problem is that there are 20 different code paths and it's not complex, but I need more work to implement it properly.
To turn floors and ceilings into tringles I use the GLU tesselator via PyOpengl. And that's about it.
>>
pretty fucking cool OP!
i'm sorta questionning the utility but i think it's really cool and interesting

also why duke nukem engine? i think people are more familiar with/ would be more interested in doom wads. Not saying it was a bad choice, just wodering why you made that decision
>>
>>563694
Is Build editor better or easier to use than GZDoom Builder? I know that one's for Doom and not Duke, but it can also export to OBJ, you might want to check it out for your second point.
>>
>>563674
>What do you mean? Are you making fun of me?

no you are a superstar
>>
File: povduke12.jpg (76KB, 2048x256px) Image search: [Google]
povduke12.jpg
76KB, 2048x256px
>>563853
I agree. It's probably completely useless and it'll probably lead to nothing. Like life itself.
>>563860
The Cube2/Sauerbraten and Quake engines can also export really nice OBJs. I've tried Tremulous recently and the environments are stunning.
>>563860
I like the Build editor but it's a matter of taste I guess. I know GZDoom even has an internal scripting language with which you can make adventure games.
>>563867
Thank you.
>>
File: scduke11.png (182KB, 640x480px) Image search: [Google]
scduke11.png
182KB, 640x480px
I'm still working on the texture coordinate generation. Turns out polymost.c is some serious spaghetti code and it's one of the few things that can still hard crash the Raspberry Pi. But it's so creative and strange.
>>
Well, that's really cool.
>>
>>563853
OP... is that you?
>>
File: povduke1.jpg (73KB, 640x480px) Image search: [Google]
povduke1.jpg
73KB, 640x480px
Did some more work
>>
File: povduke2.jpg (35KB, 640x480px) Image search: [Google]
povduke2.jpg
35KB, 640x480px
These are all rendered in Povray 3.6
>>
File: povduke3.jpg (92KB, 640x480px) Image search: [Google]
povduke3.jpg
92KB, 640x480px
>>
File: povduke4.jpg (120KB, 640x480px) Image search: [Google]
povduke4.jpg
120KB, 640x480px
>>
File: povduke5.jpg (78KB, 640x480px) Image search: [Google]
povduke5.jpg
78KB, 640x480px
Radiosity only
>>
>>564081
this brings up so many memories
>>
bretty gud, OP.

Does one these exist for doom already?
>>
File: povduke1.jpg (66KB, 640x480px) Image search: [Google]
povduke1.jpg
66KB, 640x480px
>>564538
There's all sorts of stuff for Doom. Look up GZDoom on youtube. It can do lightmaps, shaders, sloped floors, all sorts of stuff.
>>
File: povduke2.jpg (97KB, 640x480px) Image search: [Google]
povduke2.jpg
97KB, 640x480px
I don't know what I'm going to do with this thing but for now I'm amazed at how nicely those kind of enviroment render with so little input. I just have to make a hole in the ceiling somewhere so light can get in and the rest is done automatically.
>>
>>563699

Build engine. Raspberry Pi. Precomputed static lightmaps. You're lovin it aren't you.
>>
>>563660

These are sweet man, do you have a blog or summin where I can follow the development of this project?
>>
File: povduke3.jpg (83KB, 640x480px) Image search: [Google]
povduke3.jpg
83KB, 640x480px
>>564757
That, the Chicago police scanner and povray-3.6. Yes, loving it.
>>564759
No. I've made some experiments with replacing the textures and sprites programmatically, but there's so much work to do to turn it into something useable.

BTW, my lighting setup in povray is as follows:
global_settings {
assumed_gamma 1.0
radiosity {
recursion_limit 3
count 300
error_bound 0.5
}
}
sphere {
<0, 0, 0>, 100
inverse
texture {
pigment { color rgb <1, 1, 1> }
finish { diffuse 0 ambient 20 }
}
}
All solid objects have:
finish { diffuse 1 ambient 0 }
>>
File: povduke2.jpg (124KB, 640x480px) Image search: [Google]
povduke2.jpg
124KB, 640x480px
I've improved the texture alignments and solved the last rare geometrical problem.
>>
>>564777
>>564779

NICE! And come on man, make a section on your website or wherever to document this. Threads gonna die eventually. Or tryna remain anonymous?
>>
https://sourceforge.net/projects/snes9l/files/build2pov.zip/download
>>
>>564840

Don't let this die. I wanna see titty tassels lit per fragment.
>>
File: povduke01.jpg (110KB, 640x480px) Image search: [Google]
povduke01.jpg
110KB, 640x480px
>>565313
Get the source code from the sourceforge link. I think it's worth a read. It was a very interesting experiment and it does have potential but now I'm out of ideas.
>>
File: povduke02.jpg (64KB, 640x480px) Image search: [Google]
povduke02.jpg
64KB, 640x480px
I don't know.
>>
>>565324
>>565317

Looks beautiful man. Surely the next step is abandon build.exe and write your own level editor?
>>
File: povduke01.jpg (69KB, 640x480px) Image search: [Google]
povduke01.jpg
69KB, 640x480px
>>565723
I don't know. I'm lost.
>>
>>565726

I looked through the code. Not a python guy but it was interesting. So you read in a duke3d map, your program constructs an obj model from it, and then you render an image of the model in a separate program right?

How about you take what you have learned here and write an OpenGL engine that does the same thing, only in real time.
>>
>>565731
You may have noticed that there are 2 modules. One reads in the map data, one outputs it. I've written at least 5 different writers. One of those was for the Panda3D engine, one was for the Sunflow renderer, one was for OBJ files, etc... I ended up developing and sharing just the Povray writer because it was the simplest and most interesting, but yes, I've already tried what you're suggesting. It works and kinda nice, but it already exists.
>>
File: 1494701076423.jpg (11KB, 261x217px) Image search: [Google]
1494701076423.jpg
11KB, 261x217px
>>563660
That's absolutely sick OP, nice job
>>
Should see if you can read in other map types like Marathon or HL1. Those had some sick level design.
>>
File: povduke03.jpg (97KB, 640x480px) Image search: [Google]
povduke03.jpg
97KB, 640x480px
>>565785
Thank you.
>>565791
For Quake and derived there are many tools available already but they're as hard and unpleasant to use as generic 3D modelers. Not my style.
>>
File: povduke07.jpg (89KB, 640x480px) Image search: [Google]
povduke07.jpg
89KB, 640x480px
The set of Sisters Act II or III I don't remember.
>>
File: povduke04.jpg (102KB, 640x480px) Image search: [Google]
povduke04.jpg
102KB, 640x480px
With and HDR sky light
>>
File: povduke05.jpg (85KB, 640x480px) Image search: [Google]
povduke05.jpg
85KB, 640x480px
And another interior with some better HDR tone mapping. All rendered in megapov.
>>
>>566575
whoa
>>
>>563694
Eh, this is probably getting way over my head, but I still don't see the purpose of it. I mean, it can't compare with modern 3D engines at all in any way, and I don't even know why would you create a game in it, but I bet I completely missed your point. If it's a fun project to program, then keep at it I guess.
>>
File: povduke01.jpg (100KB, 640x480px) Image search: [Google]
povduke01.jpg
100KB, 640x480px
>>566854
>it can't compare with modern 3D engines
This is not a game engine. All it does is to take a static snapshot of a map.
I did it because it could be done and because I was curious about how something made with the Build engine would look like if it was reneder without limitations.
I also really don't like modern stuff and you should get off my lawn.
>>
>>566855
Pretty nifty desu senpai. Sounds like a fun time.
>>
File: povduke11.jpg (60KB, 640x480px) Image search: [Google]
povduke11.jpg
60KB, 640x480px
I think part of the problem is that people are so addicted to ambient occlusion that when they see real global illumination, it looks to bland and not dramatic enough to them.
I've been working on the Doom format lately. I make no promises but in principle I would like to make some renderings of the Ancient Aliens wad, which is super cool.
>>
File: povduke14.jpg (106KB, 640x480px) Image search: [Google]
povduke14.jpg
106KB, 640x480px
Duke Burger
>>
>>566855
>>566920
looks 10x better than that unreal engine crap. Cheers.
>>
File: povduke15.jpg (85KB, 640x480px) Image search: [Google]
povduke15.jpg
85KB, 640x480px
Compare this to the 20th anniversary edition:
https://www.youtube.com/watch?v=bmXe6LAf4RA
at 8:00 you get the same view.
>>
File: test2.jpg (63KB, 640x480px) Image search: [Google]
test2.jpg
63KB, 640x480px
This is a very early test of a my new Doom level to povray converter. It shows untextured floors only for now but those are by far the hardest entity to decode, so in time I think I'll be able to I'll bring it to the quality of my Duke Nukem converter.
>>
File: test1.jpg (56KB, 640x480px) Image search: [Google]
test1.jpg
56KB, 640x480px
I don't know if you enjoy watching these pictures at all but recently I've found the Oblige level generator and I'm having a blast playing those levels. I think they look beautiful even in the Doom engine.
>>
>>567613
I think that's rad, I think DOOM is rad, and I think your thread is rad.
>>
File: test3.jpg (32KB, 640x480px) Image search: [Google]
test3.jpg
32KB, 640x480px
>>567624
Thank you.

I've added the bottom split walls because I was too curious too see what it would look like. Unfortunately doing so maxed out my Raspberry Pi and that's about a third of the geometry required. Plus, because the Doom format require much more preprocessing, it now takes longer to convert the map than to render it. Thank you John Carmack. I'll have to employ EXTREME OPTIMIZATION.
>>
File: test4.jpg (33KB, 640x480px) Image search: [Google]
test4.jpg
33KB, 640x480px
Nevermind. I just found out that I was running some code at the wrong indentation level. Thank you Python.
>>
File: test5.jpg (47KB, 640x480px) Image search: [Google]
test5.jpg
47KB, 640x480px
Last one for this stretch, just because I have it.
>>
File: 145882-127768-trix-rabbit.jpg (16KB, 320x320px) Image search: [Google]
145882-127768-trix-rabbit.jpg
16KB, 320x320px
release these trix to the public
>>
File: povduke01.jpg (67KB, 640x480px) Image search: [Google]
povduke01.jpg
67KB, 640x480px
The source code I'm writing for this thread is available here:
https://sourceforge.net/projects/snes9l/files/build2pov.zip
I'll update it from time to time. They are little python scripts.
>>
>>567730
Jesus christ just get a github and keep the source code there
>>
File: test.jpg (123KB, 640x480px) Image search: [Google]
test.jpg
123KB, 640x480px
>>568165
I'll do it for the Doom version eventually.
>>
File: test.jpg (81KB, 640x480px) Image search: [Google]
test.jpg
81KB, 640x480px
>>568165
And besides I could implement a lot of features like several ways of re-mixing sector shapes into objects, external 3d models, lots of procedural refinements but at the same I'm trying to keep the code as simple and short as possible because I would like people to be able to use it as a starting point for their own ideas.
I don't want to add a million features that would bloat the code and cause people to be intimidated like I was when I fisrt started studying the Duke Nukem format. It's actually quite simple and powerful if you know what you're doing and there is a lot of potential still to be explored, not with polish, but with new ideas.
>>
File: test.jpg (115KB, 640x480px) Image search: [Google]
test.jpg
115KB, 640x480px
There's also a large number of implementation details I don't full understand. For example the blue fuzzy things are masking walls and are supposed to be transparent. I'm still not 100% sure about the texture alignemnts on the floors. Some sprites are shorter than they sould be possibly because the Build engine was thought with the 320x200 mode which has non-square pixel aspect ratio and so on.
>>
This is for use on duke nukem 3d classic_ msdos_ or need other program, i put all .py in jfduke3d and make me error, triangulator.py", line 1, in <module>
from OpenGL.GLU import *
ImportError: No module named OpenGL.GLU.

What need to run , thanks
>>
File: test.jpg (127KB, 640x480px) Image search: [Google]
test.jpg
127KB, 640x480px
It's not "for use" on anything. It's for you to read and make your own stuff. You're not going to be able to run it mostly because it requires a folder with all the game textures extracted and converted to png.
Eventually I'll make a version that works with freedoom and I'll be able to make a standalone package but it's chipout season now and so that project will have to wait.
>>
>>566855
>I did it because it could be done

This is how true art and creativity comes into existence. People who ask "what use does this have" have it all wrong. That will be decided by others and in due time, and however "pointless" something might seem, you never know when or how or what it may lead to.

To OP, this is great. But the way you think is the real value here. Please don't ever stop doing things like this, people like you are what gives me faith in humanity. You're an artist.
>>
>>563660
Any chance you could generate OBJs for all the levels and rar them up and post it here?
>>
>>568203
Man, I'd love to sit besides you and just listen to you exploring the code and uncovering all the quirks and all the effort that went into this.. You should make a youtube video or something with an easy language so us plebs could actually follow along.
>>
File: test.jpg (89KB, 640x480px) Image search: [Google]
test.jpg
89KB, 640x480px
>>568478
Thank you. It is too simplistic to have any real-life value. It's a curiosity, but that's what I wanted.
>>568479
At some point I had exporters for OBJ, PBRT, Sunflow and Panda3D but I've abandoned them all because I liked Megapov's radiosity render so much. I'll make an OBJ exporter for the Doom version because I've really got to get rid of the copyrighted stuff first.
>>568480
https://www.youtube.com/watch?v=HQYsFshbkYw
He makes a Doom-style engine from scratch in that video.
>>
>>568506
>It is too simplistic to have any real-life value. It's a curiosity, but that's what I wanted.

You're too modest. You never know what someone could build upon this.
>>
>>568506
>At some point I had exporters for OBJ, PBRT, Sunflow and Panda3D but I've abandoned them all because I liked Megapov's radiosity render so much. I'll make an OBJ exporter for the Doom version because I've really got to get rid of the copyrighted stuff first.

Alright. I'm interested in the geometry so I could UV unwrap it my self, texture it and produce some nice renders.
>>
File: test.jpg (132KB, 640x480px) Image search: [Google]
test.jpg
132KB, 640x480px
>>568536
Thank you.
>>568538
Get Sketch-up, Freecad or Wings3D. Build maps are very dependent on textures being placed and sized in very specific ways.
>>
File: sauer_rpg_02.jpg (183KB, 1024x768px) Image search: [Google]
sauer_rpg_02.jpg
183KB, 1024x768px
>>568538
Unrelated to Doom and Build, Cube2/Sauerbraten exports OBJs out of the box. I did pic related several years ago, so recent versions should be a lot better. Maybe in Blender you can set up some CSG planes to get rid of the all-at-square-angles limitation and make something nice.
>>
>>568600
If I had the meshes in obj format, I could retexture them fairly easily. I could model them by hand, but it would save me a lot of time if I just had all the meshes.
>>
>>568613
You seem to know your shit.

I'm having a totally unrelated issue but I figure you're perhaps just the guy to ask.

I've been using 3D Ripper DX to dump the framebuffer of the character selection screen in the old version of EverQuest. I'm getting nice geometry and textures for the most part, however all the characters are nude. So for some reason, it isn't grabbing the geometry/textures for the clothes/armor, and I assume it's because they did some wizardry or special stuff with those that the program hook can't read. Any idea what's going on and/or how I could go about solving it?
>>
>>568600
Out of curiosity, did they tile the textures back then because of hardware constraints or just "laziness"? Does tiling textures like this improve draw speed compared to having say every texture be unique?

I think they designed the "engine" so that the texture tiled to scale with the height of the geometry, no? Why did they do that?
>>
>>568619
>however all the characters are nude
Why would you want to fix that?
>>
>>568622
They are just flesh colored in the groin.. I'm interested in getting a 1:1 replica of my character, that included the armour etc.

I should mention that parts of a bridge in the same scene is also missing, I have no idea why.
>>
>>568621
Tiled textures are supported in OpenGL even to this day. It's always been intended as a data compression technique where you provide low frequency and high frequency data on two different channels. In Doom you are supposed to provide high frequency data via the tiling texture and low frequency data via the whole sector shading. In Quake you have a tiling texture and a non tiling one called light map, which is at much lower resolution and gets fused with the tiling texture at run time.
>>
File: maxresdefault.jpg (160KB, 1280x1024px) Image search: [Google]
maxresdefault.jpg
160KB, 1280x1024px
>>568627
But Duke Nukem 3D didn't use OpenGL did it?

It also seems like as 3D graphics progressed, tiling became less obvious. I assume that was both due to more use of unique textures as well as smarter/less noticeable use of tiling?
>>
>>568630
OpenGL didn't exist at the time but the concept of planar surface and texture coordinates have always been the same.
>tiling became less obvious
Modern systems can even stream textures directly from the hard drive and you can buy terabytes of storage at the supermaket. Back in the '90 games had to fit on few floppy drives.
>>
File: test.jpg (36KB, 640x480px) Image search: [Google]
test.jpg
36KB, 640x480px
Some progress on the Doom side. Don't worry about the blotches, they're due to low quality settings and they're PART AND PARCEL of this kind of illumination.
>>
File: test.jpg (27KB, 640x480px) Image search: [Google]
test.jpg
27KB, 640x480px
And this room. I'll post more as soon as I have some textures ready. Should be interesting.
>>
>>568726
Oh the memories
>>
>>568726
Could you do rise of the triad too?
>>
>>568720
>>568726
Kick-ass, Anonymous. Keep it up!
I actually kinda like the blotchy lighting. Almost looks like it's painted. Is there a good way to get such an effect intentionally?
>>
File: test.jpg (43KB, 640x480px) Image search: [Google]
test.jpg
43KB, 640x480px
>>568744
Go away. You're CIA. You tried to get me into a car accident the other day. You're never going to get the source code of TempleOS from me.
>>568754
Opaque areas that are indirectly lit and have too few samples tend to behave a little bit like a warped mirror.
>>
>>568755
>Go away. You're CIA. You tried to get me into a car accident the other day. You're never going to get the source code of TempleOS from me.

I thought I was on /g/ for a sec there..

I do want rott objs tho
>>
File: test.jpg (58KB, 640x480px) Image search: [Google]
test.jpg
58KB, 640x480px
I don't think I'm going to do anything else with Doom. The editing process, the formats... I'm not loving it.
Thread posts: 97
Thread images: 51


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.