Hydrax v0.4 - New version released + Editor!

A place for users of OGRE to discuss ideas and experiences of utilitising OGRE in their games / demos / applications.
Locked
User avatar
KungFooMasta
OGRE Contributor
OGRE Contributor
Posts: 2087
Joined: Thu Mar 03, 2005 7:11 am
Location: WA, USA
x 16
Contact:

Post by KungFooMasta »

Xavyiy, I saw your video and your work looks awesome! Is the library made for oceans or large bodies of water, or can you use it for ponds or river effects? So many good libs out these days, hard to get time to look through them. :)
Creator of QuickGUI!
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

KungFooMasta wrote:Xavyiy, I saw your video and your work looks awesome! Is the library made for oceans or large bodies of water, or can you use it for ponds or river effects? So many good libs out these days, hard to get time to look through them. :)
Actually I'm working on the two ways:
- Plane-Defined waters(like v0.1) with different type of mesh geomtries(Simple grid, "imanted" grid, radial grid, etc...)
- Infinite oceans, as you can see on the v0.2 preview using the projected grid concept.

Switch between one and other water types is very very easy, only change some options. Actually the library needs a lot of improvements before release it, at least two or three months for 0.2 version, but in the summer I want to work very hard on it!(Now I haven't got much time because of the stadies...).

Thanks for your oppinion,

Xavi
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

jjp wrote:Which fragment shader would I have to look at to find out what goes wrong?

Code: Select all

fragment_program HydraxShader20/FP hlsl
{
	source HydraxShader20.hlsl
	entry_point main_fp
    target ps_2_0
}
this, if you found something, please tell me! ;)
jjp
Silver Sponsor
Silver Sponsor
Posts: 597
Joined: Sun Jan 07, 2007 11:55 pm
Location: Cologne, Germany
Contact:

Post by jjp »

Well, if I just display the normals of the water plane they have this "blocky" look, too. But that's about it. I played around a bit, out-commenting stuff and changing parameters but couldn't find anything specific.

EDIT: stupid me. For some reason the normal map only gets point filtering. But I don't understand why, I changed the code and tried to different formats for the normal texture but that had no effect at all. But you're gonna have to do something about it. A water library that only works correctly on Geforce 8 isn't too useful :)
Last edited by jjp on Sat Feb 23, 2008 11:24 am, edited 2 times in total.
Enough is never enough.
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

jjp wrote:Well, if I just display the normals of the water plane they have this "blocky" look, too. But that's about it. I played around a bit, out-commenting stuff and changing parameters but couldn't find anything specific.

Maybe it's an issue of precision (which should be higher on your gfx card than on shader 2 or shader 3 hardware like X300, 7900 and X1900)?
Yes... it should be that.

I've recorded another video of the new Projected grid module. Wich this technique(infinite oceans) there shoudn't be precision issues, it's based on vertex normals(complexity is very higth because of the projected grid amazing LOD system, and vertex normals works very well).
There's the link:
http://rapidshare.com/files/94117695/v0 ... e.wmv.html [6Mb]
benny53
Gnoblar
Posts: 20
Joined: Wed Dec 20, 2006 10:37 pm

Post by benny53 »

The videos water quality and the downloadable demo quality differ quite significantly, and I am assuming they are different versions. When will the amazing quality one be available for download? Any time soon?
User avatar
Thrakbad
Halfling
Posts: 73
Joined: Fri Mar 23, 2007 4:32 pm
Location: Essen, Germany
Contact:

Post by Thrakbad »

That looks just incredible! I can't wait to see it in my app :D
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

jjp wrote:EDIT: stupid me. For some reason the normal map only gets point filtering. But I don't understand why, I changed the code and tried to different formats for the normal texture but that had no effect at all. But you're gonna have to do something about it. A water library that only works correctly on Geforce 8 isn't too useful :)
Yes... this is the issue reason. I can't try anything because I haven't any card where I can reproduce the error.
Otherwise your cards would work well with the new Inifinite oceans technique because normals are calculated for each vertex(and the elevated number of vertex allow a pretty normal mapping effect).
So I'm going to seach the reasons for the issue.

P.S.: Have you got this issue with others shaders or only with Hydrax's ? Thanks for your interest and sorry for my Indian-English! :lol:

EDIT: New video:
http://www.youtube.com/watch?v=SvddAMjURKg
User avatar
IFASS
Gnome
Posts: 387
Joined: Tue Jan 04, 2005 12:07 pm
Location: Netherlands

Post by IFASS »

That looks incredible Xavyiy! Really can't wait for the 0.2 release ;)
Image
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

IFASS wrote:That looks incredible Xavyiy! Really can't wait for the 0.2 release ;)
Thanks!,

There're some new screenshots of the 0.2 version development:
Image
Image
Image

Hope you like it!
User avatar
syedhs
Silver Sponsor
Silver Sponsor
Posts: 2703
Joined: Mon Aug 29, 2005 3:24 pm
Location: Kuala Lumpur, Malaysia
x 51

Post by syedhs »

Great..! Any ETA for 0.2? :)
A willow deeply scarred, somebody's broken heart
And a washed-out dream
They follow the pattern of the wind, ya' see
Cause they got no place to be
That's why I'm starting with me
User avatar
eugen
OGRE Expert User
OGRE Expert User
Posts: 1422
Joined: Sat May 22, 2004 5:28 am
Location: Bucharest
x 8
Contact:

Post by eugen »

looking outstanding! i think now is the time to compete against the water implementation in Crysis :)
[edit] this should come with ogre default demos (if possible) it realy shows a piece of what can be achieved with this great engine
User avatar
Praetor
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3335
Joined: Tue Jun 21, 2005 8:26 pm
Location: Rochester, New York, US
x 3
Contact:

Post by Praetor »

Really great work here. Excellent job all around.
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

syedhs wrote:Great..! Any ETA for 0.2? :)
I think ETA for 0.2 looks like March/April, I've to code a material generator for generate all shaders on the fly, in order to allow hlsh, cg, glsl shaders with a lot of parameters like: Per pixel/Per vertex normal maps, different shaders for the different geometry types(Infinite ocean with projected grid, defined espace water surfaces, etc), especific shaders for selected components(Actually there're 21 materials for all combination of components[Sun, foam, depth, smooth transitions, etc...]).
After it I'm going to release the 0.2 version.
eugen wrote: this should come with ogre default demos (if possible) it realy shows a piece of what can be achieved with this great engine
The only problem is that Hydrax library should come with the demo, but it would be nice doing a package like the Magic of Stonehenge demo.

Otherwise I've planned to release a demo with different water presets in order to show what hydrax and ogre can do! I think in 3 weeks more or less.

Thanks for opinions and sorry for my Enlgish!
simakasp
Gnoblar
Posts: 16
Joined: Wed Feb 28, 2007 4:07 pm

Post by simakasp »

Hi

The server the Hydrax source is downloaded from has been unavailable for a few days now, so it would be nice if someone could provide a valid download location.

Max
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

simakasp wrote:Hi

The server the Hydrax source is downloaded from has been unavailable for a few days now, so it would be nice if someone could provide a valid download location.

Max
Solved, but I conseil you wait for the 0.2 version.
Xavyiy
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

Development news:

- MaterialManager class 80% finished that when it will finished will provide:

- Hlsl, Cg and Glsl shader modes.
- Texture normal map from Cpu, Vertex normals from Cpu, Rtt and Gpu normals generation.
- No more scripts in media files from Hydrax, all is created directly by Hydrax plugin on-fly.

Actually I've implemented:
- Hlsl and Cg shader modes.
- Texture normals and vertex normals.
- No more scripts in media files from Hydrax, all is created directly by Hydrax plugin on-fly.

Bugs: In OpenGl mode and Cg there're some artifacts with the reflection, but it won't be hard to fix I think. Some issues with SIMPLE_GRID and IMANTED_GRID geometry, it will be fixed in 0.3 version.

And a lot of bugfixes/changes.

Sorry for my little Engish.

Xavi
User avatar
mehdix
Halfling
Posts: 78
Joined: Fri Jun 22, 2007 3:59 pm

Post by mehdix »

Hi Xavyiy
Thanks for your GREAT work. 8)

I am using VS2005 and made these little changes when I was integrating Hydrax in my app:

* 'DllExport' macro was added to the declaration of these classes:
CRefractionListener, CReflectionListener & CDepthListener (hydrax.h); Image (noiseutils.h); Module (modulebase.h); Perlin (perlin.h)

* 'Hydrax/Prerequisites.h' was included in these files (needed for 'DllExport'):
noiseutils.h, modulebase.h & perlin.h

* LOG() macro definition was placed into the Hydrax namespace; but as macros hasn't properly identified within namespaces: Could you declare LOG() in the inner Hydrax header/source files?
'LOG' might have been used in some apps/libs already (like mine).

( * Some changes were made to the VC project: debug names, import lib, etc. )

Is it possible that Hydrax calculations be limited to some areas of a plane?
e.g. accepts a mask map like this:
Image
(or a custom shaped plan/mesh)

& when can we touch the new version? as it seems that most of it is done. :D

Cheers.
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

mehdix wrote:Hi Xavyiy
Thanks for your GREAT work. 8)

I am using VS2005 and made these little changes when I was integrating Hydrax in my app:

* 'DllExport' macro was added to the declaration of these classes:
CRefractionListener, CReflectionListener & CDepthListener (hydrax.h); Image (noiseutils.h); Module (modulebase.h); Perlin (perlin.h)
CRefractionListener, CReflectionListener & CDepthListener was added in 0.2v for a long time, LibNoise not, because it will be deleted in the 0.3 version.
mehdix wrote: * 'Hydrax/Prerequisites.h' was included in these files (needed for 'DllExport'):
noiseutils.h, modulebase.h & perlin.h
I want to delete all LibNoise files for the 0.3 version, and code all with a pretty-style noise base generation class and two noise approachs: Perlin and FFT, however the new Infinite ocean method uses a new perlin noise approach, fastster than LibNoise and coded in only one file.
mehdix wrote:
* LOG() macro definition was placed into the Hydrax namespace; but as macros hasn't properly identified within namespaces: Could you declare LOG() in the inner Hydrax header/source files?
'LOG' might have been used in some apps/libs already (like mine).
I've change this a long time ago, now the funtion is called HydraxLOG().
mehdix wrote: Is it possible that Hydrax calculations be limited to some areas of a plane?
e.g. accepts a mask map like this:
Image
(or a custom shaped plan/mesh)
It depends directly of the Hydrax module selected(the new version allows modules for different noise generation, in order to allow modules created by users). At the moment there're two modules: Perlin and PerlinPG, the fist one is basically a rewrite of the 0.1 version water, and the second one is the infinite opcean grid method(PerlinPG: Perlin projected grid).
But I'm going to do a lot of changes in modules for the 0.3 version: I'm want to create a base noise class, and code the Perlin and FTT noise modules, in order to can use these noise modules in our hydrax modules.

As a conclusion: (For 0.3 version, not 0.2)
- Noise modules
- Hydrax modules (different geometry and approachs: plane-defined water, infinite ocean, dinamyc physics/ deformable water by user, etc).
It's a little complex, but I think it would be very great :) (And it's more hard to understand it with my little English!).

What's the aim?: (0.3 version..) For example:
Noise modules: Perlin, FFT
Hydrax modules: Simple grid, Imanted grid, Projected grid

usage:

Code: Select all

   Hydrax::Modules::SimpleGrid mSimpleGrid = new...

   mSimpleGrid->setNoiseModule(new Hydrax::Noise::Perlin(...options...));
or... 
   mSimpleGrid->setNoiseModule(new Hydrax::Noise::FFT(...options...));

   mHydrax->setModule(mSimpleGrid);
Info: The geometry in the 0.2 version is calculated in the Hydrax::Mesh class for Perlin module, and in the module for the PerlinPG. In the future the geomtry will be calculated in each module. Mesh class will be only for create/update from module data(calculated in the module)/destroy the water mesh.
mehdix wrote: & when can we touch the new version? as it seems that most of it is done. :D
In 15/20 days ;)

Aclaration:
-0.2 version will be released in 2/3 weeks.
-0.3 version will be released after 0.2. :)

Sorry for my English!
User avatar
mehdix
Halfling
Posts: 78
Joined: Fri Jun 22, 2007 3:59 pm

Post by mehdix »

COOL, Really co0O0ol!

Thanks for quick answer & good luck. :P
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

A little new screenshot of the 0.2 version development, new foam system:

Image

Hope you like it!,
Xavyiy
User avatar
syedhs
Silver Sponsor
Silver Sponsor
Posts: 2703
Joined: Mon Aug 29, 2005 3:24 pm
Location: Kuala Lumpur, Malaysia
x 51

Post by syedhs »

Yeah, it looks seriously cool. Much better if we can see it in motion :wink:
A willow deeply scarred, somebody's broken heart
And a washed-out dream
They follow the pattern of the wind, ya' see
Cause they got no place to be
That's why I'm starting with me
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

syedhs wrote:Yeah, it looks seriously cool. Much better if we can see it in motion :wink:
Of course :)

There's the video:
http://www.emmsoftware.net/blacksphere/ ... amPrev.wmv

Xavi.
Last edited by Xavyiy on Mon Mar 17, 2008 11:53 pm, edited 1 time in total.
User avatar
nullsquared
Old One
Posts: 3245
Joined: Tue Apr 24, 2007 8:23 pm
Location: NY, NY, USA
x 11

Post by nullsquared »

Beautiful, absolutely beautiful! I love the oceans!

A general thought on water: What happens when you go under the water geometry/plane? In Crysis, it looked very real - yet, on other games, you can clearly distinguish the water plane from the "under water" part. Something I've been thinking, what if the refraction part of the water plane (or geometry, just using a simple term here) was kept even when under water? I think that'll reduce the sudden "water-plane" to "underwater" jump.
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Post by Xavyiy »

nullsquared wrote:Beautiful, absolutely beautiful! I love the oceans!

A general thought on water: What happens when you go under the water geometry/plane? In Crysis, it looked very real - yet, on other games, you can clearly distinguish the water plane from the "under water" part. Something I've been thinking, what if the refraction part of the water plane (or geometry, just using a simple term here) was kept even when under water? I think that'll reduce the sudden "water-plane" to "underwater" jump.
Actually Hydrax does not support underwater effects, but I've some approaches around my head, and yes! kept the refraction distortions under the water plane/geometry is a good idea!

P.D.: I've planed posting a little Demo this night and release the 0.2 version next sunday.
;)
Locked