Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c IZE)将至少为您进行规范化。我没有使用Evaluator;启用GL_NORMALIZE并没有什么不同。 static inline void normalizeVector(Vector3f *vector) { GLfloat vecMag =_Objective C_Opengl - Fatal编程技术网

Objective c IZE)将至少为您进行规范化。我没有使用Evaluator;启用GL_NORMALIZE并没有什么不同。 static inline void normalizeVector(Vector3f *vector) { GLfloat vecMag =

Objective c IZE)将至少为您进行规范化。我没有使用Evaluator;启用GL_NORMALIZE并没有什么不同。 static inline void normalizeVector(Vector3f *vector) { GLfloat vecMag =,objective-c,opengl,Objective C,Opengl,IZE)将至少为您进行规范化。我没有使用Evaluator;启用GL_NORMALIZE并没有什么不同。 static inline void normalizeVector(Vector3f *vector) { GLfloat vecMag = VectorMagnitude(*vector); if (vecMag == 0.0) { vector->x /= 1.0; vector->y /= 0.0; vec


IZE)将至少为您进行规范化。我没有使用Evaluator;启用GL_NORMALIZE并没有什么不同。
static inline void normalizeVector(Vector3f *vector) {
    GLfloat vecMag = VectorMagnitude(*vector);
    if (vecMag == 0.0) {
        vector->x /= 1.0; 
        vector->y /= 0.0;
        vector->z /= 0.0;
    }
    vector->x /= vecMag;
    vector->y /= vecMag;
    vector->z /= vecMag;
}
- (void)calculateNormals {
    for (int i = 0; i < numOfIndices; i += 3) {      
        Triangle triangle;
        triangle.v1.x = modelData.vertices[modelData.indices[i]*3];
        triangle.v1.y = modelData.vertices[modelData.indices[i]*3+1];
        triangle.v1.z = modelData.vertices[modelData.indices[i]*3+2];

        triangle.v2.x = modelData.vertices[modelData.indices[i+1]*3];
        triangle.v2.y = modelData.vertices[modelData.indices[i+1]*3+1];
        triangle.v2.z = modelData.vertices[modelData.indices[i+1]*3+2];

        triangle.v3.x = modelData.vertices[modelData.indices[i+2]*3];
        triangle.v3.y = modelData.vertices[modelData.indices[i+2]*3+1];
        triangle.v3.z = modelData.vertices[modelData.indices[i+2]*3+2];

        Vector3f normals = calculateNormal(triangle);
        normalizeVector(&normals);

        modelData.normals[modelData.surfaceNormals[i]*3] = normals.x;
        modelData.normals[modelData.surfaceNormals[i]*3+1] = normals.y;
        modelData.normals[modelData.surfaceNormals[i]*3+2] = normals.z; 

        modelData.normals[modelData.surfaceNormals[i+1]*3] = normals.x;
        modelData.normals[modelData.surfaceNormals[i+1]*3+1] = normals.y;
        modelData.normals[modelData.surfaceNormals[i+1]*3+2] = normals.z; 

        modelData.normals[modelData.surfaceNormals[i+2]*3] = normals.x;
        modelData.normals[modelData.surfaceNormals[i+2]*3+1] = normals.y;
        modelData.normals[modelData.surfaceNormals[i+2]*3+2] = normals.z; 
    }
 glDisable(GL_CULL_FACE);
 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);