diff options
Diffstat (limited to 'source/blender/gpu/intern')
-rw-r--r-- | source/blender/gpu/intern/gpu_buffers.c | 30 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_draw.c | 8 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_shader_material.glsl | 5 |
3 files changed, 20 insertions, 23 deletions
diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 0d843dedbaa..a0a8b9ce8a6 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -298,9 +298,9 @@ GPUDrawObject *GPU_drawobject_new( DerivedMesh *dm ) /*object->legacy = 1;*/ memset(numverts,0,sizeof(int)*MAX_MATERIALS); - mface = dm->getFaceArray(dm); + mface = dm->getTessFaceArray(dm); - numfaces= dm->getNumFaces(dm); + numfaces= dm->getNumTessFaces(dm); for( i=0; i < numfaces; i++ ) { if( mface[i].v4 ) numverts[mface[i].mat_nr] += 6; /* split every quad into two triangles */ @@ -874,9 +874,9 @@ static void GPU_buffer_copy_vertex(DerivedMesh *dm, float *varray, int *index, i DEBUG_VBO("GPU_buffer_copy_vertex\n"); mvert = dm->getVertArray(dm); - mface = dm->getFaceArray(dm); + mface = dm->getTessFaceArray(dm); - numfaces= dm->getNumFaces(dm); + numfaces= dm->getNumTessFaces(dm); for( i=0; i < numfaces; i++ ) { start = index[redir[mface[i].mat_nr]]; if( mface[i].v4 ) @@ -918,13 +918,13 @@ static void GPU_buffer_copy_normal(DerivedMesh *dm, float *varray, int *index, i int start; float norm[3]; - float *nors= dm->getFaceDataArray(dm, CD_NORMAL); + float *nors= dm->getTessFaceDataArray(dm, CD_NORMAL); MVert *mvert = dm->getVertArray(dm); - MFace *mface = dm->getFaceArray(dm); + MFace *mface = dm->getTessFaceArray(dm); DEBUG_VBO("GPU_buffer_copy_normal\n"); - numfaces= dm->getNumFaces(dm); + numfaces= dm->getNumTessFaces(dm); for( i=0; i < numfaces; i++ ) { const int smoothnormal = (mface[i].flag & ME_SMOOTH); @@ -988,7 +988,7 @@ static void GPU_buffer_copy_uv(DerivedMesh *dm, float *varray, int *index, int * DEBUG_VBO("GPU_buffer_copy_uv\n"); - mface = dm->getFaceArray(dm); + mface = dm->getTessFaceArray(dm); mtface = DM_get_face_data_layer(dm, CD_MTFACE); if( mtface == 0 ) { @@ -996,7 +996,7 @@ static void GPU_buffer_copy_uv(DerivedMesh *dm, float *varray, int *index, int * return; } - numfaces= dm->getNumFaces(dm); + numfaces= dm->getNumTessFaces(dm); for( i=0; i < numfaces; i++ ) { start = index[redir[mface[i].mat_nr]]; if( mface[i].v4 ) @@ -1032,11 +1032,11 @@ static void GPU_buffer_copy_color3( DerivedMesh *dm, float *varray_, int *index, int i, numfaces; unsigned char *varray = (unsigned char *)varray_; unsigned char *mcol = (unsigned char *)user; - MFace *mface = dm->getFaceArray(dm); + MFace *mface = dm->getTessFaceArray(dm); DEBUG_VBO("GPU_buffer_copy_color3\n"); - numfaces= dm->getNumFaces(dm); + numfaces= dm->getNumTessFaces(dm); for( i=0; i < numfaces; i++ ) { int start = index[redir[mface[i].mat_nr]]; if( mface[i].v4 ) @@ -1062,11 +1062,11 @@ static void GPU_buffer_copy_color4( DerivedMesh *dm, float *varray_, int *index, int i, numfaces; unsigned char *varray = (unsigned char *)varray_; unsigned char *mcol = (unsigned char *)user; - MFace *mface = dm->getFaceArray(dm); + MFace *mface = dm->getTessFaceArray(dm); DEBUG_VBO("GPU_buffer_copy_color4\n"); - numfaces= dm->getNumFaces(dm); + numfaces= dm->getNumTessFaces(dm); for( i=0; i < numfaces; i++ ) { int start = index[redir[mface[i].mat_nr]]; if( mface[i].v4 ) @@ -1106,7 +1106,7 @@ static GPUBuffer *GPU_buffer_color( DerivedMesh *dm ) dm->drawObject->colType = CD_MCOL; } - numfaces= dm->getNumFaces(dm); + numfaces= dm->getNumTessFaces(dm); colors = MEM_mallocN(numfaces*12*sizeof(unsigned char), "GPU_buffer_color"); for( i=0; i < numfaces*4; i++ ) { colors[i*3] = mcol[i].b; @@ -1156,7 +1156,7 @@ static void GPU_buffer_copy_uvedge(DerivedMesh *dm, float *varray, int *UNUSED(i if(tf) { for(i = 0; i < dm->numFaceData; i++, tf++) { MFace mf; - dm->getFace(dm,i,&mf); + dm->getTessFace(dm,i,&mf); VECCOPY2D(&varray[j],tf->uv[0]); VECCOPY2D(&varray[j+2],tf->uv[1]); diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 25be2e2aeb4..c98f012bc1a 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -1240,7 +1240,7 @@ int GPU_scene_object_lights(Scene *scene, Object *ob, int lay, float viewmat[][4 Base *base; Lamp *la; int count; - float position[4], direction[4], energy[4]; + float position[4], direction[4], energy[4], power; /* disable all lights */ for(count=0; count<8; count++) @@ -1281,8 +1281,8 @@ int GPU_scene_object_lights(Scene *scene, Object *ob, int lay, float viewmat[][4 glLightfv(GL_LIGHT0+count, GL_POSITION, position); glLightf(GL_LIGHT0+count, GL_CONSTANT_ATTENUATION, 1.0); - glLightf(GL_LIGHT0+count, GL_LINEAR_ATTENUATION, la->att1/la->dist); - glLightf(GL_LIGHT0+count, GL_QUADRATIC_ATTENUATION, la->att2/(la->dist*la->dist)); + glLightf(GL_LIGHT0+count, GL_LINEAR_ATTENUATION, 0.0f/la->dist); + glLightf(GL_LIGHT0+count, GL_QUADRATIC_ATTENUATION, 1.0f/(la->dist*la->dist)); if(la->type==LA_SPOT) { /* spot lamp */ @@ -1294,6 +1294,8 @@ int GPU_scene_object_lights(Scene *scene, Object *ob, int lay, float viewmat[][4 else glLightf(GL_LIGHT0+count, GL_SPOT_CUTOFF, 180.0); } + + power= (ELEM(la->type, LA_SUN, LA_HEMI))? la->energy*M_PI: la->energy*M_PI; //XXX la->power /* setup energy */ mul_v3_v3fl(energy, &la->r, la->energy); diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index feb0a84fa87..9c9fa7f945f 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -1751,11 +1751,6 @@ void test_shadowbuf(vec3 rco, sampler2DShadow shadowmap, mat4 shadowpersmat, flo } } -void shade_exposure_correct(vec3 col, float linfac, float logfac, out vec3 outcol) -{ - outcol = linfac*(1.0 - exp(col*logfac)); -} - void shade_mist_factor(vec3 co, float miststa, float mistdist, float misttype, float misi, out float outfac) { float fac, zcor; |