Jump to content


nGENE - free 3D framework


38 replies to this topic

#1 Riddlemaster

    New Member

  • Members
  • PipPip
  • 22 posts

Posted 01 September 2008 - 03:54 PM

Hello,

for some time I've been working on a 3D game engine with releasing it for free in mind. Even though it's still in a rather early development stage I recently released it as planned. I'm working on it completely on my own and only in my spare time and therefore it is not that advanced and bug-free it really should be (I often tend to say it's between "make it work" and "make it right" stage). But still it is something to show to the eventual employer :) And besides it's a great fun to implement some advanced algorithms. Here are some pics showing it:

Posted Image Posted Image Posted Image Posted Image Posted Image Posted Image

A video presenting some of its features could be found on YouTube.

Better quality video could be downloaded from here.

I'm well aware of some bugs of which some are even clearly visible in the movie but am still working hard to improve it.

More details (including additional screenshots, features list, movies, basic tutorials and full source code download) can be found on http://ngene.wikidot.com/

#2 Riddlemaster

    New Member

  • Members
  • PipPip
  • 22 posts

Posted 13 January 2009 - 09:47 AM

Just to let you know that I'm still working on my open-source nGENE Tech 3D engine, I'm posting a few updated screenshots:

Posted Image Posted Image Posted Image Posted Image

Hope you like it!

Even though not that much have changed concerning graphics quality, many other changes have been made:
    * added support for Lua scripting
    * fixed many bugs
    * added realistic water, fur and spot light effects
    * added 3D picking
    * added many useful helper functions and methods to existing classes
    * adding some tutorials and samples to make it easier to get started with nGENE.
And much more. Check it yourself on http://ngene.wikidot.com!

Next time I hope to post some animated meshes.

#3 /rant/

    New Member

  • Members
  • PipPip
  • 15 posts

Posted 13 January 2009 - 04:02 PM

Looking good. I like the youtube video; seems to be an engine project with potential. In my opinion deferred shading is the way to go - I'd like to take a look at the sources when I have more free time... *yawn*

#4 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 13 January 2009 - 04:15 PM

Hey, engine looks great! Out of sheer curiosity, what approach did you use when rendering water? Did you do the usual forward rendering approach, or something else? I've been playing around with different ideas on how to render larger water/transparent sufaces with full lighting support. Just getting general input from other developers.
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#5 Riddlemaster

    New Member

  • Members
  • PipPip
  • 22 posts

Posted 13 January 2009 - 07:05 PM

I'm glad you like it.

For water I use a bit strange approach (it's hard to call it forward rendering) as I render it as a post-processing effect. Having G-Buffer filled with data after geometry pass of deferred shading, I can actually modify it in pixel shader thus creating impression of moving water surface (it doesn't exist as a set of vertices; it's only virtual). So I believe full lighting support is possible in this case (I'm not using it though).

The idea is loosely based on the algorithm described in this thread: http://www.gamedev.n...topic_id=482962 . However I made several big changes in the algorithm to make it both more flexible and a bit more realistic. A key to have good water is to remember that:
1) light extincts as it travels through water. Each component (that is r, g and b) has different extinction factor. Red - extincts first, than green and blue.
2) hard edges are unrealistic.

#6 imerso

    Senior Member

  • Members
  • PipPipPipPip
  • 426 posts
  • LocationBrasil

Posted 13 January 2009 - 10:16 PM

The water technique is awesome, thanks for sharing. Overall, a nice looking engine, very good work!

For the fur rendering, I would suggest an additional fur alpha map to cut fur rendering at some places of the model, if you didn't implement that already.

Again, I am shocked by the water rendering quality, heh. From what I can see, there are no rendering innacuracies at the edges, and the transparency looks extremely realistic. Nice!

#7 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 13 January 2009 - 10:27 PM

hmm, I think I know what the technique is now. I've heard of something similar. I'm assuming that the water must be plainiar right?
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#8 lucifer1101

    New Member

  • Members
  • Pip
  • 8 posts

Posted 13 January 2009 - 10:37 PM

its good to see i will look into it a bit...

#9 Kenneth Gorking

    Senior Member

  • Members
  • PipPipPipPip
  • 907 posts

Posted 14 January 2009 - 04:59 AM

starstutter said:

hmm, I think I know what the technique is now. I've heard of something similar. I'm assuming that the water must be plainiar right?
Is this what you are thinking about?
"Stupid bug! You go squish now!!" - Homer Simpson

#10 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 14 January 2009 - 05:05 AM

Kenneth Gorking said:

Is this what you are thinking about?
No not really. I actually already did a less complex version of that a while ago. This method requires no rendered geomerty (as stated by the OP).
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#11 Riddlemaster

    New Member

  • Members
  • PipPip
  • 22 posts

Posted 14 January 2009 - 09:31 AM

vrnunes - about fur I know. I didn't implement this because fur was done more as a break from more serious tasks :) But probably I will look into it later (but there are more important things to do now: animation, optimization and much more).

For those interested I will give more detailed description in a couple of days.

#12 imerso

    Senior Member

  • Members
  • PipPipPipPip
  • 426 posts
  • LocationBrasil

Posted 15 January 2009 - 10:55 PM

Well, I am about to try to implement this screen space water.

I am going to implement it within the terrain pixel shader. My engine is not using deferred shading, so I guess my version will differ a lot from yours (?).

Within the pixel shader, I'll compute the eye vector, then find the intersection from the current pixel to the water plane, I am guessing it is basically the same you're doing? Except I'm not worrying about waves - yet.

I won't download your source because sometimes reading code about things I did not understand completely yet, blocks my coding capacity -- and your engine uses deferred shading, so it could confuse me a lot right now. I will be glad if you can provide some extra info, if possible, but just the algorithm. I will start implementing my first prototype right now. :-)

#13 Riddlemaster

    New Member

  • Members
  • PipPip
  • 22 posts

Posted 19 January 2009 - 07:21 PM

vrnunes said:

My engine is not using deferred shading, so I guess my version will differ a lot from yours (?).
Not that much but it will be less efficient as it is not native way to go when using forward rendering. For deferred shading it seems more reasonable and natural to use similar technique to the one I use.

Quote

Within the pixel shader, I'll compute the eye vector, then find the intersection from the current pixel to the water plane, I am guessing it is basically the same you're doing? Except I'm not worrying about waves - yet.
Yes, basically it's the same. In case of deferred shading waves are sort of side effect of this operation. To do this I make several iterations of sampling the heightmap as in many bump-mapping algorithms.

#14 Riddlemaster

    New Member

  • Members
  • PipPip
  • 22 posts

Posted 20 January 2009 - 07:32 PM

In SVN there is new updated version with many bugfixes (and two 2 tutorials). Also water has been slightly improved:

Posted Image Posted Image Posted Image

#15 Riddlemaster

    New Member

  • Members
  • PipPip
  • 22 posts

Posted 09 February 2009 - 01:09 PM

Sorry for yet another double post (triple post?) but that's the only way to let you know that's something new is here.

But without further ado:

Posted Image Posted Image Posted Image

Even though my last post here was only a dozen of days ago, a lot of changes have been introduced in the nGENE Tech. First of all I'm pretty busy working on WYSIWYG editor (it should be ready to use in 2 months or so). I'm also improving existing code as I'm preparing some nice tech demo which will be available for download in 1,5 months from now. As you see this includes fixing Preetham's model faint sun and clouds.

Posted Image

Hope you like it!

#16 lucifer1101

    New Member

  • Members
  • Pip
  • 8 posts

Posted 09 February 2009 - 02:20 PM

this is very good to see, i will be keeping a good look at this

#17 Riddlemaster

    New Member

  • Members
  • PipPip
  • 22 posts

Posted 23 February 2009 - 04:04 PM

Two more weeks have passed so it's time to submit something new, just to keep you informed about current progress ;)

Posted Image Posted Image

#18 /rant/

    New Member

  • Members
  • PipPip
  • 15 posts

Posted 23 February 2009 - 09:23 PM

Riddlemaster said:

Posted Image Posted Image
Those screens. I like them.

#19 lucifer1101

    New Member

  • Members
  • Pip
  • 8 posts

Posted 23 February 2009 - 10:23 PM

is that supposed to be a foaming effect because if it is it lokks great except for on the shoreline where it shouldnt be foaming like that..

anyway great job on it..

#20 tryx

    New Member

  • Members
  • Pip
  • 3 posts

Posted 28 February 2009 - 06:15 PM

Looking better and better!





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users