Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 3 of 3

Thread: Normals Problem? Claw like Artifact?

  1. #1
    Junior Member Newbie
    Join Date
    May 2010
    Posts
    14

    Normals Problem? Claw like Artifact?

    I am generating a triangular mesh and trying to display in proper lighting condition.
    but i have having two problems while doing so:-

    1. some of my triangles are rendered very bright than the neighbor triangles ( as shown in fig1 attached).


    2. and when i rotate the object, i get a claw like artifact as shown in fig2 attached.

    what can be my problem and how to eliminate it.

  2. #2
    Senior Member OpenGL Pro BionicBytes's Avatar
    Join Date
    Mar 2009
    Location
    UK, London
    Posts
    1,171

    Re: Normals Problem? Claw like Artifact?

    Can you post how you actually rotate the normals and or object? At the moment you are expecting us to guess all the details!

  3. #3
    Junior Member Newbie
    Join Date
    May 2010
    Posts
    14

    Re: Normals Problem? Claw like Artifact?

    Here is the simple version of how i computed normal but get the same error.
    Initially lets assume we have the triangular mesh. While displaying those triangles... i find out the vector between the two edges and compute the cross product the get the normals at each vertex of the triangle. For triangle ABC, i get the vector AB and AC, the get the cross product between them to get the normal at point A. likewise for B and C.
    I am computing this one time only and storing it on display list and displaying by calling display list.

    The triangular meshes are for dataset 64 x 64 x 64 so i have taken center[3] as {32,32,32}

    I am rotating and translating the object in both x and y direction with zooming facility

    here is the code for that:-


    glTranslatef(cube_center[0], cube_center[1], cube_center[2]);
    glTranslatef(-(cube_center[0] * zoomfactor), -(cube_center[1] * zoomfactor),-(cube_center[2] * zoomfactor));
    glScalef(zoomfactor, zoomfactor, zoomfactor);
    glTranslatef(deltax, deltay, deltaz);
    glTranslatef(cube_center[0], cube_center[1], cube_center[2]);
    glRotatef(rX, 1, 0, 0);
    glRotatef(rY, 0, 1, 0);
    glTranslatef(-cube_center[0], -cube_center[1], -cube_center[2]);

    variables meaning:
    zoomfactor is initially 1.
    rX and rY stores the rotation in x and y direction.
    deltax and deltay stores the translation on x and y direction.

    I am calling the display list that draws my object after calling this code above.
    I have attached the figures for this configuration of mine.

    Problem 1: fig3.png -> showing problem where some triangles are very bright or very dark as compared to its neighbouring triangles.

    Problem 2: fig4.png -> claws like artifact.

    For problem 1, i have tried to make the z value of normal negative if its positive but it didn't helped.

    I dont have any clue about the problem 2 but i see those artifacts when rX goes from 90 to 100,and also for any combination rotation of rX and rY.

    i would be very grateful if anyone can help me with this...

    thank you

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •