Halcyon Real Time Engine

Hi guys

i have recently finished working on a realtime engine that takes baked GI scenes in max and lets you fly around it in realtime.
I have had tremendous success with vray to bake the lightmaps due to its speed and noise free GI.

The process is as simple as possible, all you have to do is create the scene, bake the lightmaps, name your objects and then export to the engine.
There are features such as Level of Detail to help make large scenes, as well as instancing and stereo projection capabilities.
You can download a demo that has been baked in Vray at
http://www.lightcraftresearch.com/
Its a model of Louis Kahns unbuilt Synagogue.

cheers

will it work with a high poly terrain? say a mountain range with 3km radius?

How do you navigate? WASD ?

32 or 64-BIT??

/Ryan

Hey Ryan
theres an instruction text file with the demo,
but basically… left click to go forward, right click to go back
< > changes speed of movement
n m changes look speed
g toggles gravity
and the engine is 32 bit

as far as terrain goes, as long as its under 15,000 polys it should be fine. I have also experimented with making 9 terrain tiles with different level of details so you can make larger terrains with 8000 px texture maps for each tile.

it is very timely, we are looking for realtime viewer. i hope this will work. i am gona try out the demo.

EDIT: 15000 poly / object or for the entire scene??

looks cool, but frankly the demo ran just horribly on my workstation quadro card. My card might not be the fastest out there, but it should be able to run it better then 2 fps. Can the program use textures other then tgas? Some of those had pretty large filesizes.

no 15,000 polys per object.
you can create scenes as large as you want, but ideally it wants to fit into video memory to get 75 fps.
the engine essentially loads your scene into main memory, and passes what it sees into video memory, so if your scene is larger than what your video memory is, it will swap textures back and forth, dropping your frame rate from 75 fps to about 25 fps.
best way to deal with big scenes is to set up level of detail, so basically make a copy of your object, rename it to be displayed further away, and bake lower res maps for it.
In theory this can be used to make quite massive scenes.
the best set up for Halcyon is a 512 meg video card or better, with a couple of gigs of ram.
The demo scene uses about 100 megs of memory, and has 10 or so 2000 pixel lightmaps.

percydaman.. did you have anything else running using memory?
and yes you can use jpgs although i try and use tga as i am able to see how much memory it uses easily, not to mention the better quality tgas produce. Realtime engines will always uncompress the textures when loading anyway, so the only reason you would want to use jpg is to save disk space. i have got .dds support, according to the dds specs it should work better. but i havnt tested if it reduces the size in video memory.
you can try resizing the tgas to see if it helps.

I went ahead and killed everything and tried the demo again. I even set the display to 640x480 16, and I maybe got it to 5 fps. I can’t expect my clients to even have as good a card as myself, so I KNOW they wouldn’t be able to use it. Its a cool idea you have going here, but asking someone to have like 3gb of memory and a 768 meg card to run is asking to much IMO. Ill try the demo tonight when I get home on my better gaming graphics card.

I have a $100 128 meg nvidia and radeon card here running on a 2.4 ghz processor, and get 75 fps. also tried it at my previous work on a quadro and it ran fine. unfortunately i dont have every card under the sun here to test it on. so unfortunately i cant help you there.

Ideally Halcyon will be used to show clients on your workstation. That way you can make and test scenes larger than what most people have seen.
most RT engines limit your texture size to run on everybodys computer. that was not my aim, as such low res scenes look terrible in my opinion.
being able to use texture and lightmaps from 2000 px to 8000 px makes some sweet looking GI scenes.
Now hook up a plasma or a couple of projectors in stereo and its mindblowing.
So this is more of a presentation solution rather than a viewer that will work on everybodys computer.
I imagine quest 3d would be better suited to that.

hmmm…weird. Let me do some more troubleshooting.

well it ran like butta on another coworkers machine. So its just me I guess.

Very impressive, can you include animation of objects?

I get a “could not initialize diect3D” in xp64

You have any plans for an actual demo of the software?

its not compatible with x64. it was mentioned in the post above.

All i saw was that the engine was 32bit

just to fill you guys in on some history, its taken me many years to get to this point,
I have a list as long as my arm of features i would love to have in it, but there is only so much 1 guy can do after work.
i have recently quit my day job and am starting on V2 fulltime, number 1 priority was to get to this first stage, a stable release for viewing GI baked models. which is what i needed for most projects i have done.
I will now start adding other features, such as sound, bump, x64, animation and a whole bunch of other things.
just keep in mind, there isnt a team of programmers behind Halcyon. it has taken a massive effort to get it to this point
V2 will have more neat stuff, and im happy to listen to users requests. but currently the list of things that it can do is on the site.

I also want to keep the engine as easy to use as possible, for instance by just naming the objects in max and exporting, it takes away the need for a complex editor such as most of the other realtime tools. Adding too many complex features may take away that ease. for instance, how do you make an opening door by naming an object?
its not so easy. thats why engines like quest have an editor. so if you are after something complex that may be your best route.

personally i feel its important for the scene to be set up entirely inside max, so making changes wont see you jumping between programs.
Baking GI into the model is as easy as rendering to texture, and viewing your model is only a couple of clicks away.

I see the main potential of this to show architects and designers their architectural space fully lit with pixel perfect GI and to navigate to any area and see how it looks.

As far as a demo goes, i am unsure on how to make time limited demos etc, and since the process is so easy i really dont see the need.
heres the basic procedure www.lightcraftresearch.com/howto.html
basically name your objects. for instance if you want baked 2 pass GI
apply a texture map, bake the GI, in the object name put TXLightMap, and export. there is other names you can use for other features, such as LOD0#100# for level of detail that dissapears after 100 units
it really doesnt get any easier.

cheers for the interest

It says 15k per object on the site.

Very interesting… I’ll enjoy taking a look at this! I wish that I was more comfortable with texture baking.

Thanks,
Shaun

you beat me to this. I started working on the same thing about 1.5 years ago. I got pretty far, and was able to get my own geometry in, but it’s just not user friendly. not an easy process going from max model to engine. Good luck! I don’t know if I can help in any way, but feel free to pm me for email.

An interesting thing you can do in Halcyon is make a sphere, add a panorama you have rendered on to it, and it lets you view a super smooth panorama.
Anyone experienced with quicktime knows how jerky and aliased a pano can look.
These panos run fullscreen at 75 fps !
with the full version you can change aspect ratio and fov, so you can span it across 2 monitors if you have an nvidia card.

http://www.lightcraftresearch.com/Panoramas.zip

@phildlight
yeah its no easy job coding an RT engine, .net has made this easier, but i appreciate now how long it takes to make a game and how many people you need.
I may give you a buzz in the future, are you familiar with .net?

@ShaunDon
Dont be scared of texture baking, its as easy as selecting render to texture, adding lighting map and hitting render. The key to a good texture bake is in making it high resolution enough so you dont get black corners. i have also noticed that making sure all walls are snapped makes a big difference.