Zone of the Enders Clone
Zone of the Enders Clone
Following up on my entry to last months screen of the month is my project based on Zone of the Enders. Intended to support my CV, more of a technical demo than a fully fledged game. Not sure I can put in the effort to add sounds.
Currently runs at 40 fps+, trying to sort out the random slow downs (25fps) caused by collisions and or the mech animations. I could badly use an AA shader, as the moment I added post processing hardware AA went out the window.
3 months to develop.
Tools used:
XEffects
Bullet Physics
CBeamSceneNode class
IrrEdit
Random Screens:
Multi-Laser
Missile Barrage
Beam Cannon
Shield Deflect
Video:
http://www.youtube.com/watch?v=5zs5dBrOOgA
Currently runs at 40 fps+, trying to sort out the random slow downs (25fps) caused by collisions and or the mech animations. I could badly use an AA shader, as the moment I added post processing hardware AA went out the window.
3 months to develop.
Tools used:
XEffects
Bullet Physics
CBeamSceneNode class
IrrEdit
Random Screens:
Multi-Laser
Missile Barrage
Beam Cannon
Shield Deflect
Video:
http://www.youtube.com/watch?v=5zs5dBrOOgA
Good work, this looks pretty nice Video for this project is great.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Yay, Gundam :-) I don't know Zone of the Enders, but your demo looks really smooth - gui, models, effects - all good. Video a little bit long, but besides that great. Doing that in just 3 months - wow! And I suppose this was even your first project with Irrlicht, right?
I'm pretty sure this makes a very good CV.
I'm pretty sure this makes a very good CV.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
very nice. i like the beams
My company: http://www.kloena.com
My blog: http://www.zhieng.com
My co-working space: http://www.deskspace.info
My blog: http://www.zhieng.com
My co-working space: http://www.deskspace.info
Wow this is impressive for 3 month's work.
I see you are suffering from the dreaded "Thin line on the left side of the screen copies the right side". To save you the headache here is how to fix it (Should be fixed in the next release of XEffects also).
If you are using D3D, find the line in EffectHandler.cpp that looks like this (It's near line 558 but I modified this file for the next release so I'm not 100% what line number it is):
Change it to:
And if you are using OpenGL change the lines that look like this (Near line 531):
To:
This should fix the lines on the edge of the screen.
For the Anti-Aliasing there are 2 solutions. You could use the "copyBackbufferTo" function provided in this thread to copy the backbuffer to an RTT so that you can render with MSAA on the backbuffer and then do post processing (In D3D9 it doesn't seem possible to do MSAA directly on the RTT). You would have to modify the update() function of XEffects to render to no render target first, and then use that function to copy the backbuffer to "ScreenRTT".
The second option is to supply large dimensions to the XEffect's constructor's "screenRTTSize" param and then take 4 neighbouring samples in the first post-processing effect of your post-processing list. This should be adequate enough but may perform and look worse than the first technique. Perhaps I should provide a sample for this in the next release of XEffects.
Cheers
I see you are suffering from the dreaded "Thin line on the left side of the screen copies the right side". To save you the headache here is how to fix it (Should be fixed in the next release of XEffects also).
If you are using D3D, find the line in EffectHandler.cpp that looks like this (It's near line 558 but I modified this file for the next release so I'm not 100% what line number it is):
Code: Select all
" OUT.TexCoords.x = 0.5 * (1.0 + Position.x - (1 / screenX)); \n"
Code: Select all
" OUT.TexCoords.x = 0.5 * (1.0 + Position.x + (1.0 / screenX)); \n"
Code: Select all
" tCoords.x = 0.5 * (1.0 + gl_Vertex.x - (1.0 / float(screenX))); \n"
" tCoords.y = 0.5 * (1.0 + gl_Vertex.y - (1.0 / float(screenY))); \n"
Code: Select all
" tCoords.x = 0.5 * (1.0 + gl_Vertex.x); \n"
" tCoords.y = 0.5 * (1.0 + gl_Vertex.y); \n"
For the Anti-Aliasing there are 2 solutions. You could use the "copyBackbufferTo" function provided in this thread to copy the backbuffer to an RTT so that you can render with MSAA on the backbuffer and then do post processing (In D3D9 it doesn't seem possible to do MSAA directly on the RTT). You would have to modify the update() function of XEffects to render to no render target first, and then use that function to copy the backbuffer to "ScreenRTT".
The second option is to supply large dimensions to the XEffect's constructor's "screenRTTSize" param and then take 4 neighbouring samples in the first post-processing effect of your post-processing list. This should be adequate enough but may perform and look worse than the first technique. Perhaps I should provide a sample for this in the next release of XEffects.
Cheers
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Issues on screen quad edges You can also solve by set texture wrap to ETC_CLAMP eg:
for D3D it's enough, but if You use OpenGL, in all types of blur passes You have to also clamp UV's eg:
Code: Select all
ScreenQuadEntity->getMaterial(0).TextureLayer[i].TextureWrap = ETC_CLAMP;
Code: Select all
// Horizontal Gaussian Blur - Cg fragment shader part
float4 Color = 0;
float Factor = 1.0/TextureSize.x; // in Vertical: TextureSize.y instead of TextureSize.x
for (int i = 0; i < 11; i++)
{
float2 nUV = UV + Kernel[i]*Factor;
nUV.x = clamp(nUV.x, 0.0 + Factor, 1.0 - Factor); // in Vertical: nUV.y instead of nUV.x
Color += tex2D(ScreenMap, nUV) * Weight[i];
}
oColor = Color;
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Yeah that's to prevent artifacts from the filtering. I already clamp most of the shaders when doing a texread. But the errors in XEffects were caused by some left over code that offset the screen quad in the vertex shader, which I just got around to cleaning up. You can see that D3D9 needs a half pixel offset but I was offsetting in the wrong direction, and OpenGL doesn't even need an offset but I left it in the shader when I converted it from HLSL.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
-
- Posts: 1691
- Joined: Sun May 18, 2008 9:42 pm
Cool . I like the graphics.
That would be illogical captain...
My first full game:
http://www.kongregate.com/games/3DModel ... tor#tipjar
My first full game:
http://www.kongregate.com/games/3DModel ... tor#tipjar
Very Nice!
The only flaw I notice is about the robot turning: it instantly turns to face the direction of the movement instead of slowly rotate around the vertical axis.
I hope you understood what I meant to say because english isn't my first language (And I'm not really good at explaining things even in my own language XD)
The only flaw I notice is about the robot turning: it instantly turns to face the direction of the movement instead of slowly rotate around the vertical axis.
I hope you understood what I meant to say because english isn't my first language (And I'm not really good at explaining things even in my own language XD)
Sorry for my awful english ^_^'