Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Dennis Meffert, posted on March 09, 2001

Image Description, by Dennis Meffert

Some screenshots of my almost completed 3D Engine. This is NOT a Quake 3 level viewer. I wrote the BSP/PVS compiler myself. There are some few problems regarding "illegal geometry" but I think I will have them fixed very soon.

Main features:
  • BSP/PVS compiler/rendering
  • Curved Surfaces
  • Static Lightmaps
  • Entities
  • Collision detection and response
  • Scripted shaders
  • Dennis Meffert
    (The Netherlands)

    Image of the Day Gallery


    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
    zed zeek

    March 09, 2001, 07:09 PM

    heres the solution to all the dark images
    nice one hands up who hasnt made a bsp quake like viewer. i know im guilty :)
    these shots really aint that low triangle count. if u wanna see low polygon have a look at Unreal tourament. so if it works why knock it.


    March 09, 2001, 07:30 PM

    why are quake clones always so dark? TURN ON THE DAMN LIGHTS!! What is this, California?


    March 09, 2001, 07:44 PM

    its not a clone

    Scrambled Monkey

    March 09, 2001, 08:11 PM

    Ok, if you think this pic is too dark, you need to learn how to configure your monitor/video card correctly. Stop blaming pic posters when you should be blaming your own ignorance :)

    Anyway, cool shot. Can your lightmapper do radiosity, or is it just point lights? I'm thinking of adding radiosity to my lightmapper, but that keeps getting put off. :/ Are the curves tesselated at load-time to a fixed number of subdivisions, or are is it real-time tesselation based on distance from the camera? I'm clueless when it comes to curves, so forgive me if that's a stupid question :) Again, cool shot.


    March 09, 2001, 09:24 PM

    I am comparing frame rates, it doesnt matter if its a film, a rendered image from an engine, a quicktime movie, an avi, a televised broadcast, or a tablet of paper with stick figures drawn on the corners of it. 30 fps is 30 fps, regardless of the medium. frames are measured after the image is displayed. It does not matter if the image is drawn or flashed. Thats what I am saying. If I render 30 minutes of beta tape, filmed at 29 fps, onto a non-linear editor and save it as an mpeg-2 (this is what you watch on television btw) do you think we bump the framerates up for you? I don't understand your point of view here.


    March 09, 2001, 09:48 PM


    you're comparing a tv set with a vga monitor..

    Tv-tubes blur the images and the phosphor glows a _lot_ longer than your monitor tube. That's the reason why 30fps on a monitor sucks. Constant 30 (or 25 for europeans) on a tv is ok.



    March 09, 2001, 11:30 PM

    I agree with some people here, those type of engine are always too damn dark and it's not the video card's or monitor's fault. For instance, look at the sky, it's colorful and bright and then look at the walls surrounding the sky, they are dark! It would be best to use some sort of radiosity light map renderer with some huge and realistic sun light. And why not use some sort of real lights indoor? I don't know about you but when I come home I can see everywhere in my house there are no dark corners and dark hallways.... please turn on the lights :)

    btw cool engine, I'm also using scripts as shaders for my engine. Basically I just use a custom script for some basic things such as "Lighting=FALSE;" and then I use directly the Vertex Shading script defined by OpenGl in my script file. Easy, cool, fast.

    Scrambled Monkey

    March 09, 2001, 11:53 PM

    "I don't know about you but when I come home I can see everywhere in my house there are no dark corners and dark hallways..." I might add that there are no monsters creeping around either, and that's because you scared them off with all the light! :) Let's face it, with those textures, and the technology he's using, it's likely to be a FPS, possibly with monsters and the like, so like I've said before, it fits the mood to be dark. I agree about the outside shot though, it does look a bit odd :) By the way, there is only one small light in my room ( my real room that is ), and there are a few dark areas, and certainly some long shadows goin on... but maybe that's just how I like it? Shadows = good. Full-bright: boring.

    About the shaders... I guess I'm guilty of being lazy here, I just use the D3D8X effect file compiler, which is basically a shader language, and it supports inline vertex shader programs, so that's pretty cool. Anyone else using effects files?


    March 10, 2001, 02:18 AM

    No, you are comparing the two. I am comparing frame rates. Read my posts.


    March 10, 2001, 04:51 AM

    If game is dark, your monitor is bad
    If game is slow, your computer is slow
    If you do not like game, you are fool.
    Interesting position. At least we always know who to blame...


    March 10, 2001, 05:15 AM

    Those shots are by no means to dark. Anyone saying something else should really adjust their damn broken monitor. They look normal, like any normal adjusted Quake1, 2 or Unreal 1 or DeusEx or any other normal game.

    Games need to be dark to have contrast. Turn up the brightness in Quake 1 brighter than those shots and the game looks awful. Because darkness creates atmosphere, dramatic lighting, shadows etc. Just look at Doom3, the video would look like a joke when it would be bright...

    The engine is nice, especially when you think of the fact that 99% of the work was most likely the tool development, the compilers and so on. Something most people skip by create a Q3 levelviewer ;-)


    Chanon Sajjamanochai

    March 10, 2001, 06:19 AM

    I wonder how you create the levels ?
    Are you compiling from .map files or another format ?


    March 10, 2001, 06:41 AM

    I think if the Quake like engines were not a bit dark, we couldn't use nice lights effect (ligthmaps...) and levels will look really flat ! no ?


    March 10, 2001, 06:44 AM

    More answers.....

    About the curves: they are tesselated at real-time based on the distance from the camera.

    About the lighting: no radiosity, just point lights.

    About the darkness: I could add 0.3 ambient and make everybody who has a monitor without an option to adjust brightness happy, but that would be a waste of color space so the next time I'll add more lights.

    About the framerate: Like I said, I KNOW it's too low, but I wanted to get the BSP/PVS working first. Now that I got it working, I'll begin to optimize. I believe this is the right order of development.

    About the editor: I use Q3Radiant to build the maps. This means the map compiler reads .map files. This is a nice format because you can customize the entities to your game needs. (And it supports patches ;)

    Kurt and Mitch: thanks for the links/tips on optimizing, this will help.

    STZ: Correct me if I'm wrong but I thought this was a game development site.... and to make a game we'll need an.... engine?



    March 10, 2001, 06:53 AM

    Did I write tip???
    It should be: hint (I guess).
    "tip" is "hint" in Dutch.


    March 10, 2001, 06:58 AM

    Ok dudes, I think it's time to put an end to this.

    The fact is that you are both right (in some way).

    There is no difference between tv and games at the same number of fps BUT ONLY IF the movie was filmed with a very small impression time.
    If you leave the shutter open for a longer time motion blur will be present IN EVERY FRAME.
    Now, normal 3D engines do not have motion blur and I don't know of any card that you could buy without selling your house and your mom that does real time motion blur in a convincing way (and no, 3dfx 5 6000 is not one of them).

    I think that is the real difference...


    March 10, 2001, 07:18 AM

    what is your mater exactly,
    if he want make an 3D engine, it s not prohibited no !!!!


    March 10, 2001, 10:11 AM

    I'm not saying, that those screenshots are dark. It's just some people always blame monitors, not adjusted hardware and whatever they can imagine. That can't be correct. And we should just find balance between need to adjust monitor, and between need to improve textures/lighting.
    Upper right image can look darker than other shots. That's because sky is quite bright if compared with dark walls.
    In reality, if sky is bright it gives more light to environment, and thus everything gets brighter - walls, floors, etc.
    And we should avoid wery bright areas in dark environment. Maybe in some rare cases in could be useful. But in some cases player can get sick of it.

    Anyway, I should say that your screenshots looks really nice

    And Dennis
    yes, I hope that your project will not be called "3D engine", but you will be able to call it "3D game". That's because engines are created like part of game (or simulation)
    In case if your engine will be better that quake3 .. yes it may have a future


    March 10, 2001, 10:16 AM

    Of course it's not prohibited. It's kinda rethoric(you know this word ? Not sure that I'm spelled it correctly) question.


    March 10, 2001, 10:47 AM

    Don't know if you going to answer this too, but how do you use curved surfaces with BSP.
    I mean, how do you clip curved surfaces and where do you get the planes to use as splitter from??
    I thought you needed portal to calculate the PVS, and to generate portals you need to do CSG, and how do you perform CSG on curved surfaces??
    I was just wondering

    Jelmer Cnossen


    March 10, 2001, 10:48 AM

    BTW, your engine looks cool !!


    March 10, 2001, 11:34 AM

    Curved surfaces are usually treated as detail brushes, I believe. That is why you usually need to place real brushes behind them so that the BSP/PVS building will work correctly. As for collision detection, I believe you either use the lowerest LOD setting, or you use a hull created by the (16,9,whatever) control points.

    Jukka Liimatta

    March 10, 2001, 11:54 AM

    The difference is not on the display medium ( although TV is more crappy than a decent monitor ), but in the way the images were captured.

    Have you ever shot a film through high-speed shutter lense? Most cheap camcorders even have that option. When you watch this videotape, on a monitor, or on a tv-- even though the fps is the same 25-30 as without the high-speed shutter, the image is much more jerky.

    Why is that? Because the frames are "snapshots" of much shorter period of time, as without the shutter, even though the frames per second is the same.

    This is how computer-generated images are rendered-- they present non-finite length of time, so short time period that it cannot be measured. 0.000000000000000000seconds would be accurate description.

    Computer generated images run at certain framerate, and refresh rate. The refresh rate ultimately decides how long "exposure" there is for the frame, difference being, that the human brain cannot get information for what happens while the next frame is rendered. Videocamera CAN capture that information, since the exposure time is finite.

    There is more information, as far as time is concerned, on video/tv/movie image than in image generated by the typical first-person shoot'em'up on PC or games console.

    The framerate is essential for smooth experience, you must have missed the 3dfx's old, classic, 30fps vs. 60fps demo, where half of the screen was refreshed at 60 and other half at 30fps. The difference wasn't too subtle to spot at all.

    May the force be with you, always. ;-)


    March 10, 2001, 12:22 PM

    I'm not sure how Quake3 does it's curved surfaces, but I do it exactly as Mitch said and it works fine for me. I really don't want to clip a portal against a curved surface.


    March 10, 2001, 01:54 PM

    I know it's my fault that the pics look dark. It's just that my stupid montior is dark, even with the brightness and contrast turned all the way up. I'm sure for most people the lighting is perfect.


    March 10, 2001, 06:41 PM

    Buy a new monitor :-)


    March 10, 2001, 08:30 PM



    March 12, 2001, 04:25 AM

    Btw. I wrote a small OpenGL program a while ago to try to settle that
    old 'you can't see above XX fps'-argument. It shows a split screen
    with some rotating bars, and you can adjust the fps of the two sides.

    FPS Compare v0.2


    March 12, 2001, 07:41 AM

    Uhms, if your monitor is so dark, then I'd expect you to make the textures *brighter* to be able to see them on your monitor, not darker..? :)

    This thread contains 59 messages.
    First Previous ( To view more messages, select a page: 0 1 ... out of 1) Next Last
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.