Blog All Title



Filed under: general — Sueastside @ 08:04:43 pm

I never saw them coming, the horsemen. I only closed my eyes for a second and when I opened them again, the world was burning, distant cries as people ran around in a panic. It took only a single blink more and it was calm again, only a single dark void remained and I can't even recall what the world was like before. Not a single sign of my person. Will I ever see her again?



State of shadows

Filed under: GSoC 2014 — naman22 @ 11:31:37 pm

While both renderer deferred and pssm works great but their shadows doesn't seems to be working as they should. If we load a scene with deferred renderer enabled, it appears that everything works fine


Until, you load point or spot light. Things begin to look weird.
When the light is close to the object it is casting shadow of things look fine.


However, if light move away from the object, there is no shadows


Same thing happens for point light.

Possible reason for this issue could be that the shadowmaps aren't rendered correctly but dump texture of shadowmap says otherwise.


Maybe its the hardware issue. I tried it on different hardware but still the issue persists.

Now the only possible reason for this issue to occur could be at the shader level.
shadow_depth.xml is responsible for mapping the shadows but nothing seems to be wrong there. Could be, the shader is taking slices into account which it shouldn't or coordinates from use_buffer.xml aren't sent right.

In addition to that pssm render manager is broken. It used to work earlier but now it doesn't exhibits shadows. weird!


Working with lights

Filed under: GSoC 2014 — naman22 @ 06:24:12 am

There are several ways to enable lights in Crystal Space. One being from world file (XML). Following is the syntax to lit them in your environment.

1). Point light :-
<light name='Lamp'>
<center y='10' x='0' z='0'/>
<color blue='1.0' green='1.0' red='1.0'/>


2). Directional light :- Same as point. rotate the matrix to change it's direction
<light name='Lamp'>
<center y='10' x='0' z='0'/>
<color blue='1.0' green='1.0' red='1.0'/>


3). Spot light :- requires some additional values
<light name='Lamp'>
<center y='10.00' x='0' z='0'/>
<color blue='1.0' green='1.0' red='1.0'/>
<spotlightfalloff outer="50" />




Filed under: GSoC 2014 — naman22 @ 10:22:13 am

Yet another GSoC, only this time its shadows.
Game on!

How water looks

Filed under: GSoC 2012, GSoC 2013, General — naman22 @ 10:00:33 am

And that's how the CS water looks.
Youtube Link!


Shader Weaver

Filed under: Weaver — naman22 @ 05:12:14 am


Shader weavers are intimidating at first mainly because it is difficult to debug them and connections are quite confusing.
The basic idea of weaver can be learned from here. However, the code written in it is outdated... better to go with code.

Following are some weaver debugging techniques that I learned.
1. Debugging by altering the output color. ex


2. CS flag to Disable shader cache : -cfgset=Video.ShaderManager.EnableShaderCache=false

3. CS flag to Dump shader program at %temp%\shader : -cfgfile=/config/shader-debug.cfg

4. Dump textures at %temp%\textures

   a. CS flag : -plugin=bugplug
   b. ctrl+d
   c. ctrl+shift+t

5. Switching between CG/GLSL

   a. simplest way is to delete the shader plugin that isn't needed.
   b. Disable GLSL only : 
   c. remove/edit the GLSL/CG technique in main entry weaver. 

6. CS flag to check syntax error: -verbose


Concluding GSoC 2013

Filed under: GSoC 2013 — naman22 @ 04:30:51 am

Entire water's shader code has been ported to weaver which will enable to add post effects easily. Plus heightmaps to generate natural water waves and larger ocean size.
Now it looks like this...




Update GSoC 2013

Filed under: GSoC 2013 — naman22 @ 03:07:37 pm

Howdy folks!,

So I had prepared couple of thing that had to be done before actually starting with interactivity.

1). Porting XmlShaders to ShaderWeaver.
2). Mismatching of texturemaps.
3). Large Size of Oceans
4). FFT in oceans
5). miscellaneous

As for 1). I tried to port the code, but I'm kinda still struggling to get it right. Thanks to res, Rlydontknow and Sueastside I'm able to understand them quite well but still weird errors priest.

The Mismatching actually didn't existed in temporary weaver code. so I guess the complete weavers should fix this issue.

The values of CELL_WID, CELL_LEN and MAX_OCEAN_DISTANCE are increased to spread the ocean even wider. but they increased the pre-computation of LODs thus the "gran" (vertex per tile) had to altered accordingly. gran = pow(2.0,LOD_type)/64.0f;

FFT needed VS texture mapping, but weavers weren't complete at the moment. So I decided to give it a shot in old shaders. If you look at the FFT implementation then you'll find that FFT is essentially creats a complex "texture". FFT calculations are very heavy. Thus it would rather be easier to just take a heightmap and use for ocean waves. It actually gives pretty decent result.


Along the way I found that the ocean water move along the camera which shouldn't happen because in a game water usually stays at one particular position. It does that due to LOD calculations. So along with taking waves parameters from the world file, the plugin will also take position and radius to which the user wants it to extend.



GSoC 2013

Filed under: GSoC 2013 — naman22 @ 08:04:16 pm

This Summer is going to be really exciting. I'm gonna beat the heat by mutating the CS water system. Thanks to CS community for considering my proposal on water simulation. Watch out for Wet CS!
starting with shaders. ;)


Final Update Of The Summer

Filed under: GSoC 2012 — Sam Devlin @ 17:24:16

Hello CrystalSpace,
Since my blog post on Friday, it has been brought to my attention that behaviours and the behaviour layer have been deprecated. Several of the apps I have worked on this summer, and in 2009, use these methods. In particular they are: bttest, pathfindingtest, questtest and steering. An example of how to remove this dependence from them can be found in Jorrit's revision 4958. There is not enough time left to make similar changes myself before the end of GSoC to all the apps I have worked on, but I have begun the removal of them from the life sim demo (Please see revision 4972.)

I have also, since the summarising post at the end of last week, kept myself busy trying to create a navmesh for the island level used in the life sim demo. Unfortunately, during construction an assertion fails in celNavMeshBuilder::GetSectorData. More specifically the problem seems to be in the line polyVerts[0] = csVector3(xbase, cell->GetHeight(x,y), ybase); and occurs because at this time csTerrainCell::heightmap is empty.

This will be my last update for the summer as the hard deadline set by google is today. However, I do hope this will not be my last involvement with CrystalSpace/CEL. I will continue to keep an eye on the mailing list and occasionally lurk in the irc channel. Thank you all again for having me for another summer and I hope the code continues to be of use to the community.

Kind regards,

powered by  b2evolution Credits: blog skins | blog software | web hosting | monetize
This skin features a CSS file originally designed for WordPress (See design credits in style.css).