Corrección
This commit is contained in:
1
Makefile
1
Makefile
@@ -8,7 +8,6 @@ OBJ = \
|
|||||||
src/shader.o \
|
src/shader.o \
|
||||||
src/input.o \
|
src/input.o \
|
||||||
src/mesh.o \
|
src/mesh.o \
|
||||||
src/alan.o \
|
|
||||||
src/main.o
|
src/main.o
|
||||||
|
|
||||||
CFLAGS = \
|
CFLAGS = \
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ narray_float_t d_cube =
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
narray_float_t d_cube =
|
narray_float_t n_cube =
|
||||||
{
|
{
|
||||||
3 * 3 * 2 * 6,
|
3 * 3 * 2 * 6,
|
||||||
|
|
||||||
|
|||||||
35
src/main.c
35
src/main.c
@@ -16,22 +16,30 @@ unsigned char palette[] =
|
|||||||
0x7A,0x1C,0xAC,0xff,
|
0x7A,0x1C,0xAC,0xff,
|
||||||
};
|
};
|
||||||
|
|
||||||
void calc_normal(float* v1, float* v2, float* v3, float* norm_vec)
|
void calc_normal(float* v1, float* v2, float* v3, float* normal)
|
||||||
{
|
{
|
||||||
vec3 lado1, lado2, normal;
|
vec3 lado1, lado2;
|
||||||
|
|
||||||
glm_vec3_sub(v2, v1, lado1);
|
glm_vec3_sub(v2, v1, lado1);
|
||||||
glm_vec3_sub(v3, v1, lado2);
|
glm_vec3_sub(v3, v1, lado2);
|
||||||
|
|
||||||
glm_vec3_cross(lado1, lado2, normal);
|
glm_vec3_cross(lado1, lado2, normal);
|
||||||
glm_vec3_normalize(normal);
|
glm_vec3_normalize(normal);
|
||||||
|
|
||||||
//para menos p2, ahora lo guarda en norm_vec
|
|
||||||
norm_vec[0] = normal[0];
|
|
||||||
norm_vec[1] = normal[1];
|
|
||||||
norm_vec[2] = normal[2];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fill_normal( float * d, float * n )
|
||||||
|
{
|
||||||
|
*n = *d;
|
||||||
|
for (int i = 0; i < *d; i += 9)
|
||||||
|
{
|
||||||
|
|
||||||
|
vec3 norm_vec;
|
||||||
|
calc_normal((d+1)+i, (d+1)+i+3, (d+1)+i+6, norm_vec);
|
||||||
|
glm_vec3_copy( norm_vec, (n+1)+i );
|
||||||
|
glm_vec3_copy( norm_vec, (n+1)+i+3 );
|
||||||
|
glm_vec3_copy( norm_vec, (n+1)+i+6 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const char * wname = "manigraph: manifold grapher";
|
const char * wname = "manigraph: manifold grapher";
|
||||||
|
|
||||||
@@ -49,17 +57,8 @@ int main( void )
|
|||||||
|
|
||||||
glewInit();
|
glewInit();
|
||||||
|
|
||||||
//nostoy seguro de como escribir esto en cube.h, pero supongo que lo que me decias era así.
|
|
||||||
for (int i = 0; i < 3 * 3 * 2 * 6; i += 9) {
|
fill_normal( d_cube, n_cube );
|
||||||
float* v1 = &d_cube[i];
|
|
||||||
float* v2 = &d_cube[i + 3];
|
|
||||||
float* v3 = &d_cube[i + 6];
|
|
||||||
float norm_vec[3];
|
|
||||||
calc_normal(v1, v2, v3, norm_vec);
|
|
||||||
n_cube[i] = norm_vec[0];
|
|
||||||
n_cube[i + 1] = norm_vec[1];
|
|
||||||
n_cube[i + 2] = norm_vec[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !( shader = create_shader() ) )
|
if( !( shader = create_shader() ) )
|
||||||
goto error_shader;
|
goto error_shader;
|
||||||
|
|||||||
Reference in New Issue
Block a user