Fastest OUTDOOR 3D

Blitz3D Forums/Blitz3D Programming/Fastest OUTDOOR 3D

AbbaRue(Posted 2003) [#1]
The game that inspired me into buying Blitz3D, and trying
to write my own software, is a game called "Carnivores 2",
If anyone can get ahold of a copy of it, Take a look at the
second Island. "Fort Ciskin". Make sure you are in
Hardware mode. As I wandered around I felt like I was actually in a real forest of Ontario, Canada.
Also watching the Dinasours actually breathing, was very
impressive. Find a Bronto. near the waters edge and you
can walk right up to it and look at it real close.

Anyway, I wanted to write a program with simular outdoor scenery. Once that phase is done and working as fast as
Blitz can do it. Then that base can be used for any outdoor
type game. I noticed that as you get a certain distance
away from a tree, it suddenly changes slightly in
appearence. So I figure they used a low poly image as you
get a certain distance away. I am hoping that Blitz3D can
match the speed of that game.

If anyone is interested in helping in the challange, please
join this forum topic. And perhaps togeather we can come up
with something impressive.
And we can all learn something along the way.


LostCargo(Posted 2003) [#2]
I think that the way a large forest of meshes works, is that you use a very low poly mesh (or sprite) for long distance views of objects, (and only show items that are close. Easy to do in a forest since the visual range is low). Once the player gets closer to an object swap with a higher poly mesh. The landscape meshes do this LOD (level of detail) well. But i dont know if you can use that sort of feature on a basic mesh.

Just a thought. im not interested in contributing time though. sorry


jfk EO-11110(Posted 2003) [#3]
don't underestimate the challenge of a good outdoor engine. It's much harder than indoor unless you are using tons of fog together with a low camera range.

I think in the Code archive there is framework for a Mesh LODing Structure, that will replace distant Objects by Sprites.

EDIT: well, something like that:
http://www.blitzbasic.com/codearcs/codearcs.php?code=815


sswift(Posted 2003) [#4]
I wrote that code and without a lot of clever modifications it's unlikely to help increase the speed of any outdoor engine.


Rob(Posted 2003) [#5]
EntityAutoFade command will automatically clip trees when invisible, and fade them in gradually. Could be a boon.


AbbaRue(Posted 2003) [#6]
Here is a short starter program. Please Excuse the mess.
It has lots of commented out lines still left in.

http://www.mnsi.net/~hwlenter/OutDoors.zip

I will seek to explain sections later.
To move around use the mouse buttons for
forward and backward movement.
Also the keys q w e set movement speeds.
I am only using 2 types of trees for now.
The trunk is a seperate Mesh from the Leaves.
I check for collision with the trunk not the leaves.
When you stop for awhile the scene is drawn Far into the
distance, as soon as you start moving it renders short distance. Also only items in view are being rendered,
those not in view are hidden.
Holding down Q button makes you keep speeding up, to see
how fast you can really move. The E key is for very slow
movement so you can look at things carefully.
The W key puts things back to a normal walking speed.
The A key is for going higher over the scene, and
The Z key is for going lower in the scene.
Your framerate and other info is displayed top left corner.
Right Mouse Button is forward, Left is Backwards movement.


AbbaRue(Posted 2003) [#7]
What I was thinking of doing down the road is using
some type of 3D tile set. I think the tiles could be
Terrain's or Mesh's. I played around with Carnivores 1
demo a little and found that all the scenes are made of
3D triangular tiles, stored in an array. Also has an array
of Sounds as well as Density, which corrisponds with the
tiles. So as you walk around you here different footsteps,
according to the tile you are on. And Density means water
tiles will have you sink. That system alows you to make
any type of terrain cause you to sink.
It uses another array for the hight of each vector joining
the tiles, to create the highth of the terrain.
How to impliment this in Blitz3d is a good question.
The Carnivore Demo can be downloaded from LINK:
http://www.gamerankings.com/itemrankings/launchreview.asp?reviewid=175347
The Area1.map file can be edited with a hex editor.
I use Carnivores 1 and 2 so much because they are good
examples. If anyone knows of another good outdoor type
game with exceptional and fast graphics please let me know.
Carnivores 1 and 2 were fast and smooth on my 350 MHz Amd K6 machine
with 4 Megs of video, that's what impressed me. What could
one do with these modern faster machines.


Mirko(Posted 2003) [#8]
Not bad AbbaRue.
I tried somting similar in my game.
As i don't like those trees made out of sprites, i used palm trees without sprites but only 3d-Meshes.
Trees are only redert if they are in view and if they are far enough from the camre they are morphed to 1 sprite.

Getting closer to the cam i morph them back (alpha-blend) to the 3d object.

works quite ok. a testversion of the early alpha of my game can be found on www.realfirepower.de

Greetings
Mirko


AbbaRue(Posted 2004) [#9]
I tried using sprites like in the castle demo, and they
actually rendered slower then 3D low polly objects.
That is, when I used hundreds of them. And they didn't
look as nice either.
If anyone tries my program out, could you let me know what
frame rate you get on your system.


Zmatrix(Posted 2004) [#10]
Ive been messing with the same thing..
I submited a screenshot to the gallery, called grassNtree's
tree's are from tree magik except for the palm.
While it doesnt look all that great, the shear # of entitys is high. 300 trees and 12000 crossed flat grass meshes.
gettin 58fps on the radeon8500 and 21 fps on a radeon7000
athlon xp 2.2ghz
this was only a test to see what the grass would look like. randomly placed everything.
It wasnt merged into a single surface. thats why the FPS is fairly low.

Zmatrix


RetroBooster(Posted 2004) [#11]
Once you single surface the grass and trees performance should skyrocket... Give it a try!


AbbaRue(Posted 2004) [#12]
Zmatrix: Could you submit an exe of your program so I can test it on my system?
With my program I have 10,000 trees scattered over a large area, and I get over 70 FPS on my Radeon 9800 when I'm moving.
My program is designed to expand the view range whenever you stop moving for a few seconds.
It then shrinks the view range as soon as you move.
I would like to know what kind of frame rate you get.


SabataRH(Posted 2004) [#13]
You actually need 3 seperate models of each tree - high, med, low poly detail.. LOD triggers can be built fairly simple in blitz3d. Myself, I use the node triggers to launch a group of trees into action. The problem with your routine and with Autofadeentity when using 10,000+ trees is; the logic has to be preformed on each entity per cpu cycle or logic render. Ouch! that can kill a game quickly.

By linking your trees to triggers (or some call them portals), you can skip the cycle time needed to filter through all your tree entites tring to detemrine autofade values and hiden/visible data. You preform these operations on the portals instead then if something needs changed you branch off to the objects linked to the portals.

Using that approach I managed over 12,000 trees on this map and kept the frame rates extermely high. http://www.aliencodec.com/products/treemagik_pro/screenshot_4.html

Check out some of my tree shots here http://www.aliencodec.com/products/treemagik_pro/tmpro_screens.html

Now of course theres other ways of doing this, and I will be the first to tell ya to explore the possibilites.. But this method I'm using is solid.. if you'd like some portal examples then email me.


AbbaRue(Posted 2004) [#14]
Sabata: By exteremely high frame rate, what kind of framerate did you get?
And on what kind of hardware? Do you have an EXE test file I could try on my system?
And my other question. Are you using Blitz3D for that?


SabataRH(Posted 2004) [#15]
Well my system is pretty strong, but I ran the test on an older system as well just for comparison.

AMD 1600 / 256mb /geforce 2mx card and got 61 fps.

Now on my dev system it was consideribly higher:

AMD 3200XP/barton / 1gb / geforcefx 5600 ultra and got over 200 fps (with vsync off).

Yes the application and demo preview modes are all done in blitz.

No demo as of yet, but one is to be released with tm-pro on jan 12-04.

Take care!


(tu) sinu(Posted 2004) [#16]
61fps on a gf2mx, thats pretty impressive.
How come it's low on the super system you have though? I thought it would be way way faster than the 61fps of your weak system but it's only 3times faster.


SabataRH(Posted 2004) [#17]
geforcefx 5600 ultra dosent seem to handle windowed DirectX to well... In fullscreen it flew.. 284fps.


AbbaRue(Posted 2004) [#18]
Sabata: Sounds like your stronger system is closely comparable with my system. 284 fps sounds pretty good to me I would probably get that on my system too.
I was getting over 200 fps when I had fewer trees and less distance. My goal of the ideal speed to distance ratio for outdoors is just over 100 fps. If I can get that with a farely large world I will be happy. Later I plan on using
3D shutter glasses on my system while exploring a large outdoor world, and I want to get at least 50 fps with them.
To get 50 fps with shutter glasses requires 100 fps rendering.
I look forward to testing a sample of your outdoor system.


SabataRH(Posted 2004) [#19]
Why do shutter glasses 1/2 the fps? Is it doubleing the poly count for each render?


AbbaRue(Posted 2004) [#20]
Only on eye's shutter is open for each frame being displayed, hence the illusion of 3D, seeing the scene from 2 different angles. It is like the old stereo veiwmasters we used to have with the round picture disks.
Only each image is being displayed on the same screen.
Each eye sees 50 fps.
Along the same lines. North American TV uses NTSC standard which displays 60 fps.
In most of Europe they use the PAL standard which is 50 fps. For watching TV.
And most mpg and avi files are using 30 fps.
In my program I would like to at least equal the PAL standard of 50 fps for each eye.
But the lowest you can go is 30 fps and still see smooth animations. Which would require 60 fps for the shutter glasses.
Anything slower and you would see the images flickering.


SabataRH(Posted 2004) [#21]
Interesting tidbits..


Zmatrix(Posted 2004) [#22]
I have a pair of shutter glasses also(e-deminsonal) , when they work right they do look nice,
But my Ati cards dont get along with them always :P
....
I dont really have anywhere to put a compiled EXE
Abbarue.
Ill see abotu finding some Space :) my bro has a site mayeb he will let me use.


The 60hz of NTSC really only = 30 fps becuase its interlaced, 60 fields(half the screen every other scan line)per second.
I dont know much about pal scan , is it interlaced? I seen to remember somthing about amiga's having a faster refresh with pal scan.(or do I have that backwards) lol
so maybe maybe its true 50fps.

Zmatrix