[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1679
  • Last Modified:

3D Grid in OPENGL

Hi All,


I actually want to create a wall for  a room.So i wanted to make the wall the room using a grid.So that i can effiencently use the lighting effects.


So now i know the 4 edges of the grid , how can run the loop to create the grid automatically.


Thanks
Hari
0
srihari1986
Asked:
srihari1986
1 Solution
 
davebytesCommented:
Well, simple starting approach would be a function that takes your 2x2 wall and returns back a 3x3 wall -- subdivide each edge mid-way, and find the center-point as well (mid-point between corners or between two of the new mid-way points...).

A more 'iterative' approach from there is pretty easy.  Decide how many subdivisions you want along a given dimension, get the distance vector between two edge points, and generate the iterative points along the line.  Repeat on all edges, then repeat along one dimension to generate the internal vertices to match the new internal edges...

float v1[3], v2[3]; // assuming these come into the line subdivision function

#define NUM_INT 3  // I'm hardcoding to subdivide into 3 new intermediate vertices
float v[NUM_INT][3];
int i,j;

for (i=0; i<NUM_INT; i++)
{
  for (j=0; j<3; j++)
    v[i][j] = v1[j] + ( (i+1) * ( (v2[j]-v1[j]) / (NUM_INT+1) ) ); // NUM_INT+1 as we're doing the number of internal edges effectively...
}

That will interpolate between two vertices and generate the intermediate points between the two.

OF COURSE, THIS GENERALLY ASSUMES A CO-PLANAR SET OF START VERTICES.  It'll work to some degree even if not, just won't necessarily take into account a gradual 'bend' that might be desired.  You'd need a more complex interpolator than my linear function above.

-d
0
 
srihari1986Author Commented:
Hi dave,

Thanks for the support.After taking a look at your example i have come out a similiar one that can draw a 10 X 10 grid.I took me a day to understand ur method.Sorry for that i am new to opengl and not too good in maths.

Regards
hARI
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now