cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=99fa9484a335be80adcb4d4303192a5f54950208

commit 99fa9484a335be80adcb4d4303192a5f54950208
Author: Bogdan Devichev <[email protected]>
Date:   Wed Mar 18 12:23:02 2015 +0100

    evas: Evas_3D primitives: square, sphere and cube are normalized.
    
    Reviewers: cedric, Hermet, raster
    
    Subscribers: cedric
    
    Differential Revision: https://phab.enlightenment.org/D2149
    
    Signed-off-by: Cedric BAIL <[email protected]>
---
 src/examples/evas/evas-3d-primitives.c | 72 +++++++++++++++++-----------------
 1 file changed, 37 insertions(+), 35 deletions(-)

diff --git a/src/examples/evas/evas-3d-primitives.c 
b/src/examples/evas/evas-3d-primitives.c
index f98ecb7..1e36baa 100644
--- a/src/examples/evas/evas-3d-primitives.c
+++ b/src/examples/evas/evas-3d-primitives.c
@@ -45,40 +45,40 @@ _vec3_normalize(vec3 *out)
 const float cube_vertices[] =
 {
    /* Front */
-   -1.0,  1.0,  1.0,     0.0,  0.0,  1.0,     1.0, 0.0, 0.0, 1.0,     0.0,  
1.0,      1.0, 0.0, 0.0,
-    1.0,  1.0,  1.0,     0.0,  0.0,  1.0,     1.0, 0.0, 0.0, 1.0,     1.0,  
1.0,      1.0, 0.0, 0.0,
-   -1.0, -1.0,  1.0,     0.0,  0.0,  1.0,     1.0, 0.0, 0.0, 1.0,     0.0,  
0.0,      1.0, 0.0, 0.0,
-    1.0, -1.0,  1.0,     0.0,  0.0,  1.0,     1.0, 0.0, 0.0, 1.0,     1.0,  
0.0,      1.0, 0.0, 0.0,
+   -0.5,  0.5,  0.5,     0.0,  0.0,  1.0,     1.0, 0.0, 0.0, 1.0,     0.0,  
1.0,      1.0, 0.0, 0.0,
+    0.5,  0.5,  0.5,     0.0,  0.0,  1.0,     1.0, 0.0, 0.0, 1.0,     1.0,  
1.0,      1.0, 0.0, 0.0,
+   -0.5, -0.5,  0.5,     0.0,  0.0,  1.0,     1.0, 0.0, 0.0, 1.0,     0.0,  
0.0,      1.0, 0.0, 0.0,
+    0.5, -0.5,  0.5,     0.0,  0.0,  1.0,     1.0, 0.0, 0.0, 1.0,     1.0,  
0.0,      1.0, 0.0, 0.0,
 
    /* Back */
-    1.0,  1.0, -1.0,     0.0,  0.0, -1.0,     0.0, 0.0, 1.0, 1.0,     0.0,  
1.0,     -1.0, 0.0, 0.0,
-   -1.0,  1.0, -1.0,     0.0,  0.0, -1.0,     0.0, 0.0, 1.0, 1.0,     1.0,  
1.0,     -1.0, 0.0, 0.0,
-    1.0, -1.0, -1.0,     0.0,  0.0, -1.0,     0.0, 0.0, 1.0, 1.0,     0.0,  
0.0,     -1.0, 0.0, 0.0,
-   -1.0, -1.0, -1.0,     0.0,  0.0, -1.0,     0.0, 0.0, 1.0, 1.0,     1.0,  
0.0,     -1.0, 0.0, 0.0,
+    0.5,  0.5, -0.5,     0.0,  0.0, -1.0,     0.0, 0.0, 1.0, 1.0,     0.0,  
1.0,     -1.0, 0.0, 0.0,
+   -0.5,  0.5, -0.5,     0.0,  0.0, -1.0,     0.0, 0.0, 1.0, 1.0,     1.0,  
1.0,     -1.0, 0.0, 0.0,
+    0.5, -0.5, -0.5,     0.0,  0.0, -1.0,     0.0, 0.0, 1.0, 1.0,     0.0,  
0.0,     -1.0, 0.0, 0.0,
+   -0.5, -0.5, -0.5,     0.0,  0.0, -1.0,     0.0, 0.0, 1.0, 1.0,     1.0,  
0.0,     -1.0, 0.0, 0.0,
 
    /* Left */
-   -1.0,  1.0, -1.0,    -1.0,  0.0,  0.0,     0.0, 1.0, 0.0, 1.0,     0.0,  
1.0,     0.0, 0.0, 1.0,
-   -1.0,  1.0,  1.0,    -1.0,  0.0,  0.0,     0.0, 1.0, 0.0, 1.0,     1.0,  
1.0,     0.0, 0.0, 1.0,
-   -1.0, -1.0, -1.0,    -1.0,  0.0,  0.0,     0.0, 1.0, 0.0, 1.0,     0.0,  
0.0,     0.0, 0.0, 1.0,
-   -1.0, -1.0,  1.0,    -1.0,  0.0,  0.0,     0.0, 1.0, 0.0, 1.0,     1.0,  
0.0,     0.0, 0.0, 1.0,
+   -0.5,  0.5, -0.5,    -1.0,  0.0,  0.0,     0.0, 1.0, 0.0, 1.0,     0.0,  
1.0,     0.0, 0.0, 1.0,
+   -0.5,  0.5,  0.5,    -1.0,  0.0,  0.0,     0.0, 1.0, 0.0, 1.0,     1.0,  
1.0,     0.0, 0.0, 1.0,
+   -0.5, -0.5, -0.5,    -1.0,  0.0,  0.0,     0.0, 1.0, 0.0, 1.0,     0.0,  
0.0,     0.0, 0.0, 1.0,
+   -0.5, -0.5,  0.5,    -1.0,  0.0,  0.0,     0.0, 1.0, 0.0, 1.0,     1.0,  
0.0,     0.0, 0.0, 1.0,
 
    /* Right */
-    1.0,  1.0,  1.0,     1.0,  0.0,  0.0,     1.0, 1.0, 0.0, 1.0,     0.0,  
1.0,     0.0, 0.0, -1.0,
-    1.0,  1.0, -1.0,     1.0,  0.0,  0.0,     1.0, 1.0, 0.0, 1.0,     1.0,  
1.0,     0.0, 0.0, -1.0,
-    1.0, -1.0,  1.0,     1.0,  0.0,  0.0,     1.0, 1.0, 0.0, 1.0,     0.0,  
0.0,     0.0, 0.0, -1.0,
-    1.0, -1.0, -1.0,     1.0,  0.0,  0.0,     1.0, 1.0, 0.0, 1.0,     1.0,  
0.0,     0.0, 0.0, -1.0,
+    0.5,  0.5,  0.5,     1.0,  0.0,  0.0,     1.0, 1.0, 0.0, 1.0,     0.0,  
1.0,     0.0, 0.0, -1.0,
+    0.5,  0.5, -0.5,     1.0,  0.0,  0.0,     1.0, 1.0, 0.0, 1.0,     1.0,  
1.0,     0.0, 0.0, -1.0,
+    0.5, -0.5,  0.5,     1.0,  0.0,  0.0,     1.0, 1.0, 0.0, 1.0,     0.0,  
0.0,     0.0, 0.0, -1.0,
+    0.5, -0.5, -0.5,     1.0,  0.0,  0.0,     1.0, 1.0, 0.0, 1.0,     1.0,  
0.0,     0.0, 0.0, -1.0,
 
    /* Top */
-   -1.0,  1.0, -1.0,     0.0,  1.0,  0.0,     1.0, 0.0, 1.0, 1.0,     0.0,  
1.0,     1.0, 0.0, 0.0,
-    1.0,  1.0, -1.0,     0.0,  1.0,  0.0,     1.0, 0.0, 1.0, 1.0,     1.0,  
1.0,     1.0, 0.0, 0.0,
-   -1.0,  1.0,  1.0,     0.0,  1.0,  0.0,     1.0, 0.0, 1.0, 1.0,     0.0,  
0.0,     1.0, 0.0, 0.0,
-    1.0,  1.0,  1.0,     0.0,  1.0,  0.0,     1.0, 0.0, 1.0, 1.0,     1.0,  
0.0,     1.0, 0.0, 0.0,
+   -0.5,  0.5, -0.5,     0.0,  1.0,  0.0,     1.0, 0.0, 1.0, 1.0,     0.0,  
1.0,     1.0, 0.0, 0.0,
+    0.5,  0.5, -0.5,     0.0,  1.0,  0.0,     1.0, 0.0, 1.0, 1.0,     1.0,  
1.0,     1.0, 0.0, 0.0,
+   -0.5,  0.5,  0.5,     0.0,  1.0,  0.0,     1.0, 0.0, 1.0, 1.0,     0.0,  
0.0,     1.0, 0.0, 0.0,
+    0.5,  0.5,  0.5,     0.0,  1.0,  0.0,     1.0, 0.0, 1.0, 1.0,     1.0,  
0.0,     1.0, 0.0, 0.0,
 
    /* Bottom */
-    1.0, -1.0, -1.0,     0.0, -1.0,  0.0,     0.0, 1.0, 1.0, 1.0,     0.0,  
1.0,     -1.0, 0.0, 0.0,
-   -1.0, -1.0, -1.0,     0.0, -1.0,  0.0,     0.0, 1.0, 1.0, 1.0,     1.0,  
1.0,     -1.0, 0.0, 0.0,
-    1.0, -1.0,  1.0,     0.0, -1.0,  0.0,     0.0, 1.0, 1.0, 1.0,     0.0,  
0.0,     -1.0, 0.0, 0.0,
-   -1.0, -1.0,  1.0,     0.0, -1.0,  0.0,     0.0, 1.0, 1.0, 1.0,     1.0,  
0.0,     -1.0, 0.0, 0.0,
+    0.5, -0.5, -0.5,     0.0, -1.0,  0.0,     0.0, 1.0, 1.0, 1.0,     0.0,  
1.0,     -1.0, 0.0, 0.0,
+   -0.5, -0.5, -0.5,     0.0, -1.0,  0.0,     0.0, 1.0, 1.0, 1.0,     1.0,  
1.0,     -1.0, 0.0, 0.0,
+    0.5, -0.5,  0.5,     0.0, -1.0,  0.0,     0.0, 1.0, 1.0, 1.0,     0.0,  
0.0,     -1.0, 0.0, 0.0,
+   -0.5, -0.5,  0.5,     0.0, -1.0,  0.0,     0.0, 1.0, 1.0, 1.0,     1.0,  
0.0,     -1.0, 0.0, 0.0,
 };
 
 const unsigned short cube_indices[] =
@@ -93,10 +93,10 @@ const unsigned short cube_indices[] =
 
 const float square_vertices[] =
 {
-   -1.0,  1.0,  0.0,     0.0,  0.0,  -1.0,     1.0, 0.0, 0.0, 1.0,     0.0,  
1.0,      1.0, 0.0, 0.0,
-    1.0,  1.0,  0.0,     0.0,  0.0,  -1.0,     1.0, 0.0, 0.0, 1.0,     1.0,  
1.0,      1.0, 0.0, 0.0,
-   -1.0, -1.0,  0.0,     0.0,  0.0,  -1.0,     1.0, 0.0, 0.0, 1.0,     0.0,  
0.0,      1.0, 0.0, 0.0,
-    1.0, -1.0,  0.0,     0.0,  0.0,  -1.0,     1.0, 0.0, 0.0, 1.0,     1.0,  
0.0,      1.0, 0.0, 0.0,
+   -0.5,  0.5,  0.0,     0.0,  0.0,  -1.0,     1.0, 0.0, 0.0, 1.0,     0.0,  
1.0,      1.0, 0.0, 0.0,
+    0.5,  0.5,  0.0,     0.0,  0.0,  -1.0,     1.0, 0.0, 0.0, 1.0,     1.0,  
1.0,      1.0, 0.0, 0.0,
+   -0.5, -0.5,  0.0,     0.0,  0.0,  -1.0,     1.0, 0.0, 0.0, 1.0,     0.0,  
0.0,      1.0, 0.0, 0.0,
+    0.5, -0.5,  0.0,     0.0,  0.0,  -1.0,     1.0, 0.0, 0.0, 1.0,     1.0,  
0.0,      1.0, 0.0, 0.0,
 };
 
 const unsigned short square_indices[] = {0, 1, 2, 2, 1, 3};
@@ -298,15 +298,17 @@ evas_3d_add_sphere_frame(Eo *mesh, int frame, int p, vec2 
tex_scale)
              fi = i * dfi;
              sinfi = sin(fi);
              cosfi = cos(fi);
-             vertices[i + j * vccount].x = sinth * sinfi;
-             vertices[i + j * vccount].y = costh;
-             vertices[i + j * vccount].z =  sinth * cosfi;
+             normals[i + j * vccount].x = sinth * sinfi;
+             normals[i + j * vccount].y = costh;
+             normals[i + j * vccount].z =  sinth * cosfi;
 
-             normals[i + j * vccount] = vertices[i + j * vccount];
+             vertices[i + j * vccount].x = normals[i + j * vccount].x / 2;
+             vertices[i + j * vccount].y = normals[i + j * vccount].y / 2;
+             vertices[i + j * vccount].z = normals[i + j * vccount].z / 2;
 
-             tangents[i + j * vccount].x = vertices[i + j * vccount].z;
-             tangents[i + j * vccount].y = vertices[i + j * vccount].y;
-             tangents[i + j * vccount].z = -vertices[i + j * vccount].x;
+             tangents[i + j * vccount].x = normals[i + j * vccount].z;
+             tangents[i + j * vccount].y = normals[i + j * vccount].y;
+             tangents[i + j * vccount].z = -normals[i + j * vccount].x;
 
              tex_coord[i + j * vccount].x = i / (float)(vccount - 1) * 
tex_scale.x;
              tex_coord[i + j *vccount].y = tex_scale.y - j / (float)(vccount - 
1) * tex_scale.y;

-- 


Reply via email to