latest progress

Community Forums/Showcase/latest progress

AdamStrange(Posted 2015) [#1]
I've been reworking parts of the 3d core, so that there is no limit on the amount of objects that can be stored:

The new voxel tools pointed out the problem.

To test it all here is a quick shot of something I am working with:

Although it has shaders - there are none being used, just the voxel tools being collapsed down to low poly objects

You can see in the two pics the automatic occlusion giving fake depth - this can be avoided if you want

The vehicle models are not static - they bounce around, heads turn, clockwork key rotate, etc


Hardcoal(Posted 2015) [#2]
looks good


AdamStrange(Posted 2015) [#3]
I'm trying to make it all more bullet proof. I'm also dealing with a faux shadow system when objects cast shadows on the ground


AdamStrange(Posted 2015) [#4]
Here's the latest shot with the faux shadow


shaders are now operational which accounts for the slight near/far blur and also the slight darkening of the corners


markcw(Posted 2015) [#5]
Nice. How do you animate them; is it done in Rameses? Also shouldn't the blur be on the far objects?


AdamStrange(Posted 2015) [#6]
Yep - directly in Rameses (if you're on a mac I can give you a download?)

The far objects do blur - in the above shot, they aren't far enough away to blur - also the blur is not on/off - it is infinitly graded

here's some of the animations:



Just working on a quick importer for magicaVoxels


AdamStrange(Posted 2015) [#7]
Quick look at the MagicaVoxel importer (.vox files)


You can see 2 models imported and also the resulting unoptimised meshes

On import, either the standard MagicaVoxel pallette is used, or custom colors if found in the file


Ploppy(Posted 2015) [#8]
I'm very impressed at the speed you work at. Is this a one man or team effort? Looks real pro.


AdamStrange(Posted 2015) [#9]
yep - just me.
I'm very impressed at the speed you work at.
:)
I try to do a little bit every day, but find a good sleep or a walk is a great way to think about stuff.


braxton(Posted 2015) [#10]
very nice, it brings back memories of a retroesque Final Fantasy Tactics on PlayStation, I really like the style!


Steve Elliott(Posted 2015) [#11]
Cool stuff, as always :)


markcw(Posted 2015) [#12]
Thanks. I found a download from this thread. It's version 1.09. I found your blog about it here. So is this free software?! Is there any chance you could share the .3do importer code for bmx? Anyway, Rameses looks amazing.

The far objects do blur - in the above shot, they aren't far enough away to blur - also the blur is not on/off - it is infinitly graded

From that shot, it seems to me the near objects are blurred. I've been trying a depth-of-field shader too but haven't got it to work yet.


OldNESJunkie(Posted 2015) [#13]
Hope you release a Win version of this as well someday...one can dream :^)


AdamStrange(Posted 2015) [#14]
@munch
Current version of Rameses is 1.33 - I'll do a separate post with a new download :)

for DOF you need to use multiples system. The first pass will do your render to 2 bitmaps: 1 for the actual render and 1 32bit depth buffer - it must be 32bit as depth needs accuracy.

the second shader takes the first two bitmaps and depending on the depth, depends on the level of blur - I can give you some shader code if needed?

Hope you release a Win version of this as well someday...one can dream :^)

Do you know I can't get max to compile correctly on windows - the moment i can then I will look and see about it.

here's the latest shot showing the far blur better:

if you look at the right side you can see the bike alpha fading in - it was the best way I could think of to prevent model 'popping'


Naughty Alien(Posted 2015) [#15]
this looks really nice..however, im not sure what im looking at?? Is this some sort of game editor or general purpose voxel editor .. or..?


AdamStrange(Posted 2015) [#16]
your looking at two things: rameses is the 3d editor, the thing with the green blocks is a game.
But both are linked as they are both using the same 3d/UI code.

So you are getting bits of Rameses and the new voxel tools, the game showing these models in actual use :)


Calibrator(Posted 2015) [#17]
Is this a revolutionary new way to make a new Frogger?
;-)


AdamStrange(Posted 2015) [#18]
hehe, not sure about the revolution - but frogger: yep (i would say)


Steve Elliott(Posted 2015) [#19]
Just how many projects and games are you currently working on Adam? ;)


AdamStrange(Posted 2015) [#20]
* Rameses is a core project - as it is the 3d core system
* Medusa is more or less finished and provides the backend GUI management systems - but there is also a lot of the 3d code built into it as well a article stuff and some drawing - but in essence finished
* there are lots of weird support systems for dealing with sound and input handling
* I've got a number of other projects running, but concentrate on one part until it works right.

Mostly it's about learning - There are a lot of things to deal with in openGL: buffers, shadows, shaders, etc - and then there is getting them all to run at a good speed


Steve Elliott(Posted 2015) [#21]
ok...Just I was looking forward to the Zarch-like game and you seem stretched with all your projects lol.


AdamStrange(Posted 2015) [#22]
is that the pink looking one? or the block one?


markcw(Posted 2015) [#23]
for DOF you need to use multiples system. The first pass will do your render to 2 bitmaps: 1 for the actual render and 1 32bit depth buffer - it must be 32bit as depth needs accuracy.

the second shader takes the first two bitmaps and depending on the depth, depends on the level of blur - I can give you some shader code if needed?

Thanks. I collected up a few shaders but I never really figured out the theory behind DOF. So yes please, I'd love to see your shader code! :)


AdamStrange(Posted 2015) [#24]
ok, the first thing you'll need is a FBO system (frame buffer object)
when you render you'll render offscreen to these buffers. in this case 2 32bit ones
1 is the rgba which would be the normal shader output
the other is a 32 bit depth buffer - I'm assuming you have these?

Here's the fragment code I use for the blur:
//global variables
	vec2 poissonDisk[17] = vec2[](
		vec2( 0, 0 ),

     vec2( -0.94201624,  -0.39906216 ),
     vec2(  0.94558609,  -0.76890725 ),
     vec2( -0.094184101, -0.92938870 ),
     vec2(  0.34495938,   0.29387760 ),
     vec2( -0.91588581,   0.45771432 ),
     vec2( -0.81544232,  -0.87912464 ),
     vec2( -0.38277543,   0.27676845 ),
     vec2(  0.97484398,   0.75648379 ),
     vec2(  0.44323325,  -0.97511554 ),
     vec2(  0.53742981,  -0.47373420 ),
     vec2( -0.26496911,  -0.41893023 ),
     vec2(  0.79197514,   0.19090188 ),
     vec2( -0.24188840,   0.99706507 ),
     vec2( -0.81409955,   0.91437590 ),
     vec2(  0.19984126,   0.78641367 ),
     vec2(  0.14383161,  -0.14100790 )
	);

void Main(){
	//channel fbotex0 is the RGBA bitmap
		vec4 deferred = texture2D(fbotex0, vTexCoord);
		Float alpha = deferred.a;
		vec3 diffuse = deferred.rgb;
		
	//chanel fbotex1 is the depth bitmap r is the depth channel I am using
		depth = texture2D(fbotex1, vTexCoord).r;
		
		Float blur;
		Int k;

				if (depth > 12){ //far
					blur = (depth-12)*0.0002;
					if(blur > 0.2) blur = 0.2;
					diffuse += texture2D(fbotex0, vTexCoord + (poissonDisk[1] * blur) ).rgb;
					diffuse += texture2D(fbotex0, vTexCoord + (poissonDisk[4] * blur) ).rgb;
					diffuse += texture2D(fbotex0, vTexCoord + (poissonDisk[6] * blur) ).rgb;
					diffuse += texture2D(fbotex0, vTexCoord + (poissonDisk[8] * blur) ).rgb;
				}else if(depth < 0.12){ //near
					blur = 0.02-depth;
					blur = (depth-0.12)*0.0015;
					diffuse += texture2D(fbotex0, vTexCoord + (poissonDisk[1] * blur) ).rgb;
					diffuse += texture2D(fbotex0, vTexCoord + (poissonDisk[3] * blur) ).rgb;
					diffuse += texture2D(fbotex0, vTexCoord + (poissonDisk[5] * blur) ).rgb;
					diffuse += texture2D(fbotex0, vTexCoord + (poissonDisk[8] * blur) ).rgb;
				}else{
					diffuse *= 3.5;
				}
				diffuse *= 0.2;

	//to render for output
	gl_FragColor = vec4(diffuse, 1.0);
	return;
}



markcw(Posted 2015) [#25]
Thanks! I don't know how to work with a FBO yet but I will have a look around and see. I have got access to a depth buffer.


AdamStrange(Posted 2015) [#26]
heres the shader in human terms
* render to a depth buffer and a rgba buffer
* render a flat plane with a new shader
* this shader take the ribs buffer and depth buffer as inputs
- for any pixel, render a box blur from the rgba determined by the depth


AdamStrange(Posted 2015) [#27]
looks like someone started a fire:




AdamStrange(Posted 2015) [#28]
started working on the actual gameplay element
If you've noticed - the chicken has a key - you now have a time element:
* when the clockwork runs down - you die
* eat grain - you pause (to eat) and gain some time
* get a key and you get more time
* go into null space - you fall and die