Horde3D

Next-Generation Graphics Engine
It is currently 22.11.2024, 06:57

All times are UTC + 1 hour




Post new topic Reply to topic  [ 12 posts ] 
Author Message
PostPosted: 15.07.2008, 14:53 
Offline

Joined: 09.07.2008, 16:48
Posts: 11
I just read Horde is shader based and require hardware with shaders 2.0 as a minimum. Firstly, is this true? As I didn't find it on the website. Secondly, is there any thoughts to target older hardware? This would be certainly with unavailable effects such as normal mapping, but could makes Horde able to display polygons and animated characters on modest configurations.

I noticed the use of the uint32 type in the engine, but this is not thanks to the Standard Integer Types (stdint.h).
You wrote
Code:
typedef unsigned int uint32;

But the standard define
Code:
typedef unsigned long int uint32_t

Could you comment this?


Top
 Profile  
Reply with quote  
PostPosted: 15.07.2008, 15:21 
Offline
Tool Developer

Joined: 13.11.2007, 11:07
Posts: 1150
Location: Germany
Did you encountered any problems with it?


Top
 Profile  
Reply with quote  
PostPosted: 15.07.2008, 15:42 
Offline

Joined: 09.07.2008, 16:48
Posts: 11
No, but it may create a confusion if my own code is based on this standard. This was mostly a remark.

About hardware, I will have acces to a radeon 7500 card in some time but this is not certain. If it should be materialized, I will give a try with Horde' samples. But I would like to get confirmation of what I read.


Top
 Profile  
Reply with quote  
PostPosted: 15.07.2008, 16:08 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
sebastiend wrote:
No, but it may create a confusion if my own code is based on this standard. This was mostly a remark.
stdint.h does not exist on a number of platforms (mostly with older compiler implementations), though we probably should use it where it does. However, until this causes problems with name collisions, I wouldn't worry too much about it ;)
Quote:
About hardware, I will have acces to a radeon 7500 card in some time but this is not certain. If it should be materialized, I will give a try with Horde' samples. But I would like to get confirmation of what I read.
It most certainly will not run on that card. In particular, the engine is entirely shader based, so you need GLSL shaders, which typically don't show up till GL 1.5 (the best driver I have seen for the 7500 only gives you 1.4), Frame Buffer Objects (again, 1.5), Vertex Buffer Objects (those you will have), and floating-point render buffers (also missing).

Several of us around the forums have vague plans to implement fixed-function fallbacks (I want to port Horde to the iPhone), but it would require a pretty major rewrite of most of the engine, so may not be worth it.

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
PostPosted: 15.07.2008, 20:35 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
sebastiend wrote:
I just read Horde is shader based and require hardware with shaders 2.0 as a minimum. Firstly, is this true? As I didn't find it on the website. Secondly, is there any thoughts to target older hardware? This would be certainly with unavailable effects such as normal mapping, but could makes Horde able to display polygons and animated characters on modest configurations.

Check the requirements section on the features page. Horde is heavily based on shaders and mordern GPU features, so it makes no sense to create a fallback renderer.


Top
 Profile  
Reply with quote  
PostPosted: 15.07.2008, 22:08 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
marciano wrote:
sebastiend wrote:
I just read Horde is shader based and require hardware with shaders 2.0 as a minimum. Firstly, is this true? As I didn't find it on the website. Secondly, is there any thoughts to target older hardware? This would be certainly with unavailable effects such as normal mapping, but could makes Horde able to display polygons and animated characters on modest configurations.

Check the requirements section on the features page. Horde is heavily based on shaders and mordern GPU features, so it makes no sense to create a fallback renderer.

Fundamentally though, it pushes polygons to the screen and applies textures and effects to them - which can be done on any 3D-capable hardware. I don't propose that the main development branch expend any effort on a fallback renderer, but I think it would be nice to build one at some point - we are cutting ourselves out of a very large part of the market otherwise ;)

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
PostPosted: 16.07.2008, 08:31 
Offline

Joined: 09.07.2008, 16:48
Posts: 11
You are right. As entitled on the website, Horde is made as a next-generation graphics engine. I would have looked better the Features page. I don't have exactly the same goal. I want to build games running on most configurations thanks to features degrees determined at runtime. This is to build games from little toys for casual use, to next-gen environments and gameplays only for sm 2.0 hardware, both using the same compiled library.
As I am ever modifying Horde, this could be done on my side. But I need to study the engine more in depth.
Some help would be great if time come to implement it.


Top
 Profile  
Reply with quote  
PostPosted: 16.07.2008, 21:07 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
swiftcoder wrote:
Fundamentally though, it pushes polygons to the screen and applies textures and effects to them - which can be done on any 3D-capable hardware. I don't propose that the main development branch expend any effort on a fallback renderer, but I think it would be nice to build one at some point - we are cutting ourselves out of a very large part of the market otherwise ;)

I think the main "selling point" of Horde is that you *can* do some great (commercial quality) graphics quite easily. This power comes mainly from support for advanced shaders and the possbility to do some fancy post processing effects and realize different renderer designs with the pipeline scripts. Having a truly next-gen game that also works on low end hardware (less than GL 2.0) certainly won't work.

On the other hand, I must admit that personally I'm very focused on the cutting edge area of course :)
Other people like sebastiend may be happy with less visual fidelity for a casual game. For this it would of course make sense to have a fallback renderer. But this won't be trivial to implement. A somewhat capable low spec renderer will need a more complex material system that allows multi-pass techniques and some basic CPU based effect features (similar to the quake 3 engine). And this again will be difficult to make nicely compatible with the shader based high spec renderer. What I could imagine could work best is creating a spin off project for low spec hardware (also handys, GL ES 1.1 could be a reasonable minimum) that has the look and feel of Horde (API, philosophy, geometry formats) but an entirely different material system and renderer.


Top
 Profile  
Reply with quote  
PostPosted: 16.07.2008, 21:43 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
marciano wrote:
I think the main "selling point" of Horde is that you *can* do some great (commercial quality) graphics quite easily. This power comes mainly from support for advanced shaders and the possbility to do some fancy post processing effects and realize different renderer designs with the pipeline scripts. Having a truly next-gen game that also works on low end hardware (less than GL 2.0) certainly won't work.
I agree, but it does raise some problems for prospective developers. If Horde is exclusively aimed for the cutting-edge niche, that works fine, but the engine may end up playing host to a series of tech demos, rather than full games.

If you look at most of the competing open-source engines (Ogre, IrrLicht, etc.), they all offer quite robust fallbacks - at the cost of great complexity. Quite a few commercial engines (most notably the Source engine) fallback very gracefully, the major exception being CryTek.

Horde is pretty well situated for the hardcore market, but it completely leaves out the casual market (although Intel may fix that with their upcoming integrated GPUs).

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
PostPosted: 22.07.2008, 17:05 
Offline

Joined: 09.07.2008, 16:48
Posts: 11
Here are some comments we can find in Ogre's sources:
Quote:
Ogre's material class encapsulates ALL aspects of the visual appearance,
of an object. It also includes other flags which
might not be traditionally thought of as material properties such as
culling modes and depth buffer settings, but these affect the
appearance of the rendered object and are convenient to attach to the
material since it keeps all the settings in one place. This is
different to Direct3D which treats a material as just the colour
components (diffuse, specular) and not texture maps etc. An Ogre
Material can be thought of as equivalent to a 'Shader'.
@par
A Material can be rendered in multiple different ways depending on the
hardware available. You may configure a Material to use high-complexity
fragment shaders, but these won't work on every card; therefore a Technique
is an approach to creating the visual effect you are looking for. You are advised
to create fallback techniques with lower hardware requirements if you decide to
use advanced features. In addition, you also might want lower-detail techniques
for distant geometry.
@par
Each technique can be made up of multiple passes. A fixed-function pass
may combine multiple texture layers using multitexrtuing, but Ogre can
break that into multiple passes automatically if the active card cannot
handle that many simultaneous textures. Programmable passes, however, cannot
be split down automatically, so if the active graphics card cannot handle the
technique which contains these passes, OGRE will try to find another technique
which the card can do. If, at the end of the day, the card cannot handle any of the
techniques which are listed for the material, the engine will render the
geometry plain white, which should alert you to the problem.
@par
Ogre comes configured with a number of default settings for a newly
created material. These can be changed if you wish by retrieving the
default material settings through
SceneManager::getDefaultMaterialSettings. Any changes you make to the
Material returned from this method will apply to any materials created
from this point onward.


Now come first thoughts.
We could add options to EngineOptions list corresponding to different levels of graphics features. In Ogre, it selects the best technique for the used card but an other one can be selected manually.
Depending on the engine configuration, the material system could ignore/use xml nodes from material scripts, The Shader node should be ignored for OpenGL < 2.0 .
We could, as Ogre do, implement a concept of techniques with one being the current Horde way.


Top
 Profile  
Reply with quote  
PostPosted: 22.07.2008, 23:21 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
I have just read that there are already Beta drivers for Intel X3000 chipsets that support OpenGL 2.0. Of course the newer Intel graphics chips will also support GL 2.0 and hence (hopefully) Horde. So the compatibility problem is beginning to die out, although it will of course still take several years until all casual gamers will have such hardware. Anyways, Horde was always been designed as a "next-gen" engine and that's what it is. We will have enough work in the future to perfect the existing system (better handling of larger and more complex projects for example) and to keep Horde "next-gen", so I wouldn't want to spend time on thinking how to make it work on completely low-spec hardware (yeah, I know this is a hard attitude ;) ). The spirit of this project is to provide cutting edge technology, so I don't think that the main development brunch will ever work on pre-GL2 hardware.

But of course ports for older hardware are very welcome and I really hope that someone will try that. I just want to say that we need a straight line for the official development, else we will end up with too many building sites and chaos and the quality of the project would definitely suffer.

By the way, personally I would be fine if we had just a smaller part of the open source engine market, as long as it's is the top end of the projects quality-wise :)


Top
 Profile  
Reply with quote  
PostPosted: 23.07.2008, 08:19 
Offline

Joined: 05.07.2008, 21:12
Posts: 26
In fact, Horde3D is so easy to stuck somewhere in your project, that I made my project with a fallback of plainly not using Horde3D when it is not avaible.

(It try Horde3D, then Allegro with DirectDraw acceleration, then Allegro without acceleration at all...)

Altough the result is that I am having a hard time here, since my fallback consists of 2D graphics, that means that in fact I have 2 engines, not just a single engine with a fallback system.

The problem is that I think that to do a fallback on Horde3D, will result in that too (it will become several engines, not just a single engine), because the way that it was engineering (and I like that way! Altough Horde3D lack SEVERAL features, the ones that I can not use Allegro in place, it is fairly easy to code, with Irrlicht that was nearly complete, the few but important features to my game that were missing, were nearly impossible to implement without doing a truckload of coding)


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 12 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group