[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vr / w / wg] [i / ic] [r9k] [s4s] [vip] [cm / hm / lgbt / y] [3 / aco / adv / an / asp / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / qst / sci / soc / sp / tg / toy / trv / tv / vp / wsg / wsr / x] [Settings] [Home]
Settings Home
/3/ - 3DCG

Thread archived.
You cannot reply anymore.

File: scduke3.png (181 KB, 640x480)
181 KB
181 KB PNG
I've made a Build Engine (Duke Nukem 3D) map to OBJ converter
File: scduke5.png (189 KB, 640x480)
189 KB
189 KB PNG
Another example
File: povduke5.jpg (162 KB, 2048x256)
162 KB
162 KB JPG
Cylindrical panorama with radiosity and textures, rendered in povray, with somewhat incorrect texture coordinates
File: povduke2.jpg (119 KB, 2048x256)
119 KB
119 KB JPG
Another panorama of the bathroom in the first level
you're a superstar
File: povduke7.jpg (180 KB, 2048x256)
180 KB
180 KB JPG
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 (186 KB, 2048x256)
186 KB
186 KB JPG
I just wanted to get some feedback
Good job super star xx
Serious question, what is the point of this? What are you trying to achieve?
File: 10_37_46.png (574 KB, 642x543)
574 KB
574 KB PNG
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 (179 KB, 640x480)
179 KB
179 KB PNG
Forgot to include another example, just for fun
File: povduke11.jpg (167 KB, 2048x256)
167 KB
167 KB JPG
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?
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
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.
>What do you mean? Are you making fun of me?

no you are a superstar
File: povduke12.jpg (76 KB, 2048x256)
76 KB
I agree. It's probably completely useless and it'll probably lead to nothing. Like life itself.
The Cube2/Sauerbraten and Quake engines can also export really nice OBJs. I've tried Tremulous recently and the environments are stunning.
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.
Thank you.
File: scduke11.png (182 KB, 640x480)
182 KB
182 KB PNG
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.
OP... is that you?
File: povduke1.jpg (73 KB, 640x480)
73 KB
Did some more work
File: povduke2.jpg (35 KB, 640x480)
35 KB
These are all rendered in Povray 3.6
File: povduke3.jpg (92 KB, 640x480)
92 KB
File: povduke4.jpg (120 KB, 640x480)
120 KB
120 KB JPG
File: povduke5.jpg (78 KB, 640x480)
78 KB
Radiosity only
this brings up so many memories
bretty gud, OP.

Does one these exist for doom already?
File: povduke1.jpg (66 KB, 640x480)
66 KB
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 (97 KB, 640x480)
97 KB
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.

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

These are sweet man, do you have a blog or summin where I can follow the development of this project?
File: povduke3.jpg (83 KB, 640x480)
83 KB
That, the Chicago police scanner and povray-3.6. Yes, loving it.
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
texture {
pigment { color rgb <1, 1, 1> }
finish { diffuse 0 ambient 20 }
All solid objects have:
finish { diffuse 1 ambient 0 }
File: povduke2.jpg (124 KB, 640x480)
124 KB
124 KB JPG
I've improved the texture alignments and solved the last rare geometrical problem.

NICE! And come on man, make a section on your website or wherever to document this. Threads gonna die eventually. Or tryna remain anonymous?

Don't let this die. I wanna see titty tassels lit per fragment.
File: povduke01.jpg (110 KB, 640x480)
110 KB
110 KB JPG
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 (64 KB, 640x480)
64 KB
I don't know.

Looks beautiful man. Surely the next step is abandon build.exe and write your own level editor?
File: povduke01.jpg (69 KB, 640x480)
69 KB
I don't know. I'm lost.

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.
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 (11 KB, 261x217)
11 KB
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 (97 KB, 640x480)
97 KB
Thank you.
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 (89 KB, 640x480)
89 KB
The set of Sisters Act II or III I don't remember.
File: povduke04.jpg (102 KB, 640x480)
102 KB
102 KB JPG
With and HDR sky light
File: povduke05.jpg (85 KB, 640x480)
85 KB
And another interior with some better HDR tone mapping. All rendered in megapov.
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 (100 KB, 640x480)
100 KB
100 KB JPG
>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.
Pretty nifty desu senpai. Sounds like a fun time.
File: povduke11.jpg (60 KB, 640x480)
60 KB
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 (106 KB, 640x480)
106 KB
106 KB JPG
Duke Burger
looks 10x better than that unreal engine crap. Cheers.
File: povduke15.jpg (85 KB, 640x480)
85 KB
Compare this to the 20th anniversary edition:
at 8:00 you get the same view.
File: test2.jpg (63 KB, 640x480)
63 KB
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 (56 KB, 640x480)
56 KB
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.
I think that's rad, I think DOOM is rad, and I think your thread is rad.
File: test3.jpg (32 KB, 640x480)
32 KB
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 (33 KB, 640x480)
33 KB
Nevermind. I just found out that I was running some code at the wrong indentation level. Thank you Python.
File: test5.jpg (47 KB, 640x480)
47 KB
Last one for this stretch, just because I have it.
release these trix to the public
File: povduke01.jpg (67 KB, 640x480)
67 KB
The source code I'm writing for this thread is available here:
I'll update it from time to time. They are little python scripts.
Jesus christ just get a github and keep the source code there
File: test.jpg (123 KB, 640x480)
123 KB
123 KB JPG
I'll do it for the Doom version eventually.
File: test.jpg (81 KB, 640x480)
81 KB
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 (115 KB, 640x480)
115 KB
115 KB JPG
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 (127 KB, 640x480)
127 KB
127 KB JPG
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.
>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.
Any chance you could generate OBJs for all the levels and rar them up and post it here?
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 (89 KB, 640x480)
89 KB
Thank you. It is too simplistic to have any real-life value. It's a curiosity, but that's what I wanted.
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.
He makes a Doom-style engine from scratch in that video.
>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.
>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 (132 KB, 640x480)
132 KB
132 KB JPG
Thank you.
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 (183 KB, 1024x768)
183 KB
183 KB JPG
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.
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.
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?
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?
>however all the characters are nude
Why would you want to fix that?
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.
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 (160 KB, 1280x1024)
160 KB
160 KB JPG
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?
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 (36 KB, 640x480)
36 KB
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 (27 KB, 640x480)
27 KB
And this room. I'll post more as soon as I have some textures ready. Should be interesting.
Oh the memories
Could you do rise of the triad too?
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 (43 KB, 640x480)
43 KB
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.
Opaque areas that are indirectly lit and have too few samples tend to behave a little bit like a warped mirror.
>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 (58 KB, 640x480)
58 KB
I don't think I'm going to do anything else with Doom. The editing process, the formats... I'm not loving it.

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

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.