Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
stramit
Dec 9, 2004
Ask me about making games instead of gains.
I'm currently rebuilding my 3d engine from scratch. I used it last year for my honors thesis at university, but there were so many things that I wanted to change by the end that I just decided to rebuild it from scratch. Here are some shots of the stuff I have been working on.

General Scene:


Screen Space Ambient Occlusion Pass (still need a bit more work / tweaking):


I'm doing this ill in OpenGL. Currently the engine supports Bullet physics, and a nice configurable render pipeline where I can change how elements plug in and plug out. I have just started working on the game side of the engine so I'll actually be able to use it for something other then pretty tech renders.

Adbot
ADBOT LOVES YOU

stramit
Dec 9, 2004
Ask me about making games instead of gains.
Here are two images i made in one of my old raytracers. I'm rejigging it to be actually nice and incorporate all the new coding stuff / performance i know since I wrote it originally (about 2 years ago).





Other then this I'm working on an iPhone turn based strat game (writing an editor atm). I'm not a massive fan on Obj-C so far, but it's not that bad I guess.

stramit
Dec 9, 2004
Ask me about making games instead of gains.

heeen posted:

Can it do checkerboard surfaces?

Not currently, but I might implement that soon. Doesn't seem to hard to do really.

stramit
Dec 9, 2004
Ask me about making games instead of gains.


I'm making a 3d space trading game atm, I want to make most of the assets procedural so that I don't have to worry to much about art and stuff. Here is my first pass at a planet shader / procedural cloud generation.

Things still left to do:
* Make the terrain texture procedural
* Multiple cloud layers
* Randomly generate planets based on heuristics

I'll post the results when I'm done!

stramit
Dec 9, 2004
Ask me about making games instead of gains.

DLCinferno posted:

Very cool! That's a great idea and nice work.

Thanks. I'm doing as much work as I can on the GPU but I'm still generating my initial cloud iterations on the CPU, I am working on fixing that at the moment. It seems to work pretty fast as well :D

stramit
Dec 9, 2004
Ask me about making games instead of gains.

Scaevolus posted:

Are you using Perlin or Simplex noise for the clouds?

Nothing so fancy. I am generating 4 32x32 noise maps (math.random style). Scaling map 1 up to 512x512, map 2 up to 256x256 (tile by two), map 3 up to 128x128 (tile by 4), map 4 up to 64x64 (tile by 8). The upscale on the GPU with linear sampling does some minor blurring on the texture. I then perform a gaussian noise pass each texture. I then combine the textures with each texture contributing a different amount to the final image (the larger granularity contributes more then lower granularity). I then perform a tiling pass to make the clouds tileable. All this apart from generating the 32x3x noise maps is done on the GPU.

At render time I have a function that (using exp) that modifies how cloudy the clouds look.

stramit
Dec 9, 2004
Ask me about making games instead of gains.

akadajet posted:

Playing around with GPU generated Perlin noise...


Click here for the full 1280x720 image.



Click here for the full 1296x758 image.


Fun stuff, I tell ya.

Very nice! How are you generating the 'noise' on the GPU and what is your texture output resolution? I'm really interested in this as I am making some procedural planets and this is the kind of thing I want to end up with! If you would like to share your methods I'd be super happy!

stramit
Dec 9, 2004
Ask me about making games instead of gains.

akadajet posted:

I copied most of the ugly stuff from GPU Gems. You should look at this article. There's a link somewhere on that site for the source code and optimized version. I've also got a blog at jetaylor.net you might be interested in. (You may be the only one. It gets like 0 traffic.)

Thanks I'll have a play with it tonight and see what I can come up with. Mind if I ping you a few questions if I run into troubles?

e: Also if your noise is just a 'heightmap' I can help you out with a normal map generation shader I wrote one last week (noticed that yours looks a tad off).

stramit fucked around with this message at 04:25 on Mar 1, 2010

stramit
Dec 9, 2004
Ask me about making games instead of gains.


Finished off some procedural planet stuff I was working on. It's not amazing but it's 'fit for purpose'. I realised I was spending more time on this stuff then on gameplay for my game... I'll probably iterate on this a bit more at a later date.

All terrain and clouds are procedural and generated with perlin noise.

stramit
Dec 9, 2004
Ask me about making games instead of gains.
I've been writing a visual shader editor for Unity 3. The shader system in unity is really nice but to hard for the average artist to use so I'm writing a system to make it easier. It outputs unity shaders that can be compiled and run ect.

I'm most happy with the validation systems I built into the graph (it's self validating so you can't write a bad shader), and the preview tools that let you see the shader without leaving the editor (the unity editor api's not easily allow this and it took me quite a bit of time fighting to get it working properly).

Here is a simple shader that does additive blending from two textures.

There is still quite a bit of work to go but it should be pretty ace when done. I've validated that this kind of thing can work in unity, so now it's just grunt work to get it done.

stramit
Dec 9, 2004
Ask me about making games instead of gains.

The Wizard of Oz posted:

They go both ways. You can see right-to-left in Unreal Engine's material editor, or Darktree.

You can see left-to-right in Blender's material nodes and Maya's shading networks.

Of course there's also top-to-bottom or bottom-to-top. This is not something that should cause anything but the most minor discomfort anyway; you're not going to go "oh poo poo which direction is output again?" even if you're switching between applications constantly, because your high-level understanding of the network is going to focus on the edges, which will quickly discover the root.

:D This. There is also the advantage that if you want to make your graph bigger you do not have to move all the nodes to have more room on the left. It makes more sense to me to have the graph expanding and growing to the right.

I could easily add a toggle though that flips the node sides. That would be tres easy actually.

stramit
Dec 9, 2004
Ask me about making games instead of gains.

emonkey posted:

I have some experience with the unreal editor in a production environment. There are a few things you should do to future proof it if you haven't done it:

1. Make a 'code' node where you can type in whatever you want and have it figure out inputs. GPU's are getting more powerful all the time and a 300 instruction count shader built with add and multiply nodes gets old fast.

2. Support instancing code somehow, often artists want to create a lighting system once and not have to rehook up 30 nodes.

If I were to write a material node editor from scratch my base node would be the 'code' node, all nodes would be saved instances of this. So the 'Add' node would be code that looks like "return $A + $B" etc. An entire material with 'input' nodes could be reduced to a code block so you could create your 'base lighting' node in the node editor and then place it into your 'wood04' material and hook up the textures you want.

Under the hood they are all written in a very simple API so it's easy to add / extend new nodes. I prefer this type safety on the nodes as it is clear to anyone looking at / using the graph what is happening. Adding 'code' nodes hides details from being clearly in view from just looking at the graph. I do understand what you are saying, but to me the point of the graph editor is so that you do not need to 'code'. It's a tool for artists, not for programmers. Maybe it's just the artists I have worked with in the past, but they do not want the ability to enter any code. It also means that it's possible to write a bad shader by entering bad code. This was one of the big requirements I put on the project, you should not be able to create invalid shaders. It adds confusion.

I guess my point is: It's so easy to add new nodes that it seems silly to me to have a 'code' node.

quote:

2. Support instancing code somehow, often artists want to create a lighting system once and not have to rehook up 30 nodes.
You are looking at this from a very unreal engine perspective. Unity handles shader / materials quite differently to unreal. This outputs a pure 'shader'. When you plugin a shader to a material it is an instance. So there is no need to create a specific instance ect like in unreal. It's a much simpler and easy to use system in my opinion.

quote:

3. Ensure copy/paste and undo/redo work.
Yep, I have not done this yes. And I know it's very important.

All that being said I'm releasing the beta sometime this week. Here is a video of it in action:
http://www.vimeo.com/13825713

stramit fucked around with this message at 00:54 on Aug 3, 2010

stramit
Dec 9, 2004
Ask me about making games instead of gains.
Just finished beta 2 of my shader editor for Unity 3. It's coming along very well. Lots of GUI rework and stuff behind the scenes. I'm happy with how it's coming along. It's great to have something out there that people use.

If you are a user of unity you can find it here:

Adbot
ADBOT LOVES YOU

stramit
Dec 9, 2004
Ask me about making games instead of gains.


I was in a team of 4 for the latest Global Game Jam over the weekend. We made a nifty little game about fighting to save yourself from extinction.

You can download it here if you want to play:
http://www.globalgamejam.org/2011/press-3-breed

quote:

You are the last plant left after the apocalypse and are being besieged by an army of mechanical insects. The fern in the middle of the screen represents your current energy. The more plants you have breeded the faster your energy regenerates, and the larger your fern the more energy you have. Use the cursor to illuminate the defense mound so you can see attacking enemies.

Press 1 while mousing over a target to shoot an aoe spore cloud
Press 2 while mousing over a target to shoot a thorn
Press 3 to breed a new plant!!

Plants will glow red when on low health. The game is over when all your plants die. Each glowing orb on the fern represents 10 energy that you have stored.

We wanted a minimal interface, so it's all expressed via in game elements (apart from the score).

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply