Jump to content

  • Log In with Google      Sign In   
  • Create Account


Drawing game area


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 DmitryNik   Members   -  Reputation: 199

Like
0Likes
Like

Posted 05 November 2012 - 03:47 AM

Hello.

I'm wondering, if there is a special technique for drawing a games' fields (like in Age of Empires or Heroes IV etc.). But I don't know what I should search for. I know, I can draw one with primitives and "dress" it up with texture. But would be it really the same as in the games mentioned above? And if there is a special technique for drawing such fields, could anybody give me any hints, what I should search for?

Thank you in advancePosted Image

Edited by DmitryNik, 05 November 2012 - 03:48 AM.


Sponsor:

#2 joew   Crossbones+   -  Reputation: 3546

Like
1Likes
Like

Posted 05 November 2012 - 05:19 AM

You need to google for "terrain rendering" and you will find many different algorithms with various tradeoffs and specialized for various implementations. They generally get the needed data from a heightmap and build a triangulated mesh which can also account for LoD, etc... although there are other implementations such as the voxel terrain system in the C4 engine.

Edited by joew, 05 November 2012 - 05:20 AM.


#3 DmitryNik   Members   -  Reputation: 199

Like
0Likes
Like

Posted 05 November 2012 - 05:28 AM

Thank you. I was searching for those 2 words pretty long time.Posted Image

#4 DmitryNik   Members   -  Reputation: 199

Like
0Likes
Like

Posted 06 November 2012 - 05:01 AM

With the answer on my question I was able to draw using LOD my own terrain(it's awesome, guys Posted Image ). But I got another problem, and to avoid creating a new topic(since the question still relates somehow to the game area(terrain) drawing) I'll describe the problem and will ask the question here. I got stuck with lightning. I'm using XNA and I just tried to make some nice(I believe it's possible) lightning with BasicEffect class. I used directionalLight0 for this purpose and... it doesn't work. I've tried to rotate the terrain, then camera, but there is no any visible objects on the screen at all, there is only dark screen. Here is my code for the lightning and for the world matrix:
[source lang="csharp"] this.basicEffect.LightingEnabled = true; this.basicEffect.DirectionalLight0.Direction = new Vector3(0,0,1); this.basicEffect.DirectionalLight0.DiffuseColor = new Vector3(1f, 1f, 1f);[/source]

Only transformation done on the world matrix:
[source lang="csharp"]this.world = Matrix.CreateTranslation(new Vector3(-this.terrainTexture.Width / 2.0f, 0, this.terrainTexture.Height / 2.0f));[/source]

Where could be the problem?

Edited by DmitryNik, 06 November 2012 - 05:03 AM.


#5 Molle85   Members   -  Reputation: 172

Like
0Likes
Like

Posted 06 November 2012 - 09:33 AM

Your Directional Light vector seems to be parallel to the ground, try changing it to Vector3(0,-1,0)

#6 DmitryNik   Members   -  Reputation: 199

Like
0Likes
Like

Posted 06 November 2012 - 11:55 AM

Your Directional Light vector seems to be parallel to the ground, try changing it to Vector3(0,-1,0)


To be honest, I've tried every possible value. But it still doesn't work.

#7 DmitryNik   Members   -  Reputation: 199

Like
0Likes
Like

Posted 06 November 2012 - 02:07 PM

Normal vectors are not zero. I've checked it. Also even custom point lightning doesn't work. And this is very strange. Since I take the light position and the Vertex position, then the "ray" is created. After that the dot product is calculated(DOT(ray, normal)). Moreover the ray is normalized. I've tried this effect on the small mesh and it worked.



ADDED:

Yeees! Problem solved!!! Posted Image

The only reason WHY lighting doesn't work was in the order in which statements were written! Before putting vertices into the buffer we have to calculate the normal component of the each vertex. And ONLY after that we can put it in the buffer.Posted Image

Edited by DmitryNik, 06 November 2012 - 02:38 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS