[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19422] branches/ge_dome: merge with trunk (scons fix and others)
Dalai Felinto
dfelinto at gmail.com
Fri Mar 27 07:05:49 CET 2009
Revision: 19422
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19422
Author: dfelinto
Date: 2009-03-27 07:05:49 +0100 (Fri, 27 Mar 2009)
Log Message:
-----------
merge with trunk (scons fix and others)
+
Spherical Panoramic (mode 3) working 100% for resolution bigger than 5.
Shadow problems fixed.
More cleanup in the code.
Modified Paths:
--------------
branches/ge_dome/SConstruct
branches/ge_dome/config/win32-vc-config.py
branches/ge_dome/source/blender/render/intern/source/convertblender.c
branches/ge_dome/source/gameengine/Ketsji/KX_Dome.cpp
branches/ge_dome/source/gameengine/Ketsji/KX_Dome.h
branches/ge_dome/source/gameengine/Ketsji/KX_IpoActuator.cpp
branches/ge_dome/source/gameengine/Ketsji/KX_IpoActuator.h
branches/ge_dome/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
branches/ge_dome/source/gameengine/Ketsji/KX_PythonInit.cpp
branches/ge_dome/source/gameengine/PyDoc/KX_IpoActuator.py
branches/ge_dome/source/nan_definitions.mk
Modified: branches/ge_dome/SConstruct
===================================================================
--- branches/ge_dome/SConstruct 2009-03-26 20:17:05 UTC (rev 19421)
+++ branches/ge_dome/SConstruct 2009-03-27 06:05:49 UTC (rev 19422)
@@ -557,14 +557,14 @@
if env['WITH_BF_ICONV']:
dllsources += ['${BF_ICONV_LIBPATH}/iconv.dll']
if env['WITH_BF_FFMPEG']:
- dllsources += ['${LCGDIR}/ffmpeg/lib/avcodec-51.dll',
+ dllsources += ['${LCGDIR}/ffmpeg/lib/avcodec-52.dll',
'${LCGDIR}/ffmpeg/lib/avformat-52.dll',
'${LCGDIR}/ffmpeg/lib/avdevice-52.dll',
- '${LCGDIR}/ffmpeg/lib/avutil-49.dll',
- '${LCGDIR}/ffmpeg/lib/libfaad-0.dll',
+ '${LCGDIR}/ffmpeg/lib/avutil-50.dll',
+ '${LCGDIR}/ffmpeg/lib/libfaad-2.dll',
'${LCGDIR}/ffmpeg/lib/libfaac-0.dll',
'${LCGDIR}/ffmpeg/lib/libmp3lame-0.dll',
- '${LCGDIR}/ffmpeg/lib/libx264-59.dll',
+ '${LCGDIR}/ffmpeg/lib/libx264-67.dll',
'${LCGDIR}/ffmpeg/lib/xvidcore.dll',
'${LCGDIR}/ffmpeg/lib/swscale-0.dll']
windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources)
Modified: branches/ge_dome/config/win32-vc-config.py
===================================================================
--- branches/ge_dome/config/win32-vc-config.py 2009-03-26 20:17:05 UTC (rev 19421)
+++ branches/ge_dome/config/win32-vc-config.py 2009-03-27 06:05:49 UTC (rev 19422)
@@ -9,7 +9,7 @@
BF_FFMPEG = LIBDIR +'/ffmpeg'
BF_FFMPEG_INC = '${BF_FFMPEG}/include'
BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat-52.lib avcodec-51.lib avdevice-52.lib avutil-49.lib swscale-0.lib'
+BF_FFMPEG_LIB = 'avformat-52.lib avcodec-52.lib avdevice-52.lib avutil-50.lib swscale-0.lib'
BF_PYTHON = LIBDIR + '/python'
BF_PYTHON_VERSION = '2.5'
Modified: branches/ge_dome/source/blender/render/intern/source/convertblender.c
===================================================================
--- branches/ge_dome/source/blender/render/intern/source/convertblender.c 2009-03-26 20:17:05 UTC (rev 19421)
+++ branches/ge_dome/source/blender/render/intern/source/convertblender.c 2009-03-27 06:05:49 UTC (rev 19422)
@@ -1988,12 +1988,12 @@
part->bb_align,part->draw&PART_DRAW_BB_LOCK,
a,totpart+totchild,part->bb_uv_split,part->bb_anim,part->bb_split_offset,random,pa_time,part->bb_offset,uv);
}
- else if(strandbuf) {
+ else if(strandbuf) { if(svert) {
VECCOPY(svert->co, loc);
svert->strandco= -1.0f + 2.0f*time;
svert++;
strand->totvert++;
- }
+ } }
else{
if(k==1){
VECSUB(loc0,loc1,loc);
Modified: branches/ge_dome/source/gameengine/Ketsji/KX_Dome.cpp
===================================================================
--- branches/ge_dome/source/gameengine/Ketsji/KX_Dome.cpp 2009-03-26 20:17:05 UTC (rev 19421)
+++ branches/ge_dome/source/gameengine/Ketsji/KX_Dome.cpp 2009-03-27 06:05:49 UTC (rev 19422)
@@ -93,7 +93,7 @@
cubeleft.resize(2);
cuberight.resize(2);
- CreateMeshDome180(m_resolution);
+ CreateMeshDome180();
m_numfaces = 4;
}else if (m_angle > 180 && m_angle <= 250){
cubetop.resize(2);
@@ -102,7 +102,7 @@
cubefront.resize(2);
cuberight.resize(2);
- CreateMeshDome250(m_resolution);
+ CreateMeshDome250();
m_numfaces = 5;
}else{
cubetop.resize(2);
@@ -112,7 +112,7 @@
cuberight.resize(2);
cubeback.resize(2);
- CreateMeshDome250(m_resolution);
+ CreateMeshDome250();
m_numfaces = 6;
}
break;
@@ -123,7 +123,7 @@
cuberight.resize(2);
m_angle = 180;
- CreateMeshDome180(m_resolution);
+ CreateMeshDome180();
m_numfaces = 4;
break;
case DOME_PANORAM_SPH:
@@ -131,10 +131,12 @@
cubeleftback.resize(2);
cuberight.resize(2);
cuberightback.resize(2);
+ cubetop.resize(2);
+ cubebottom.resize(2);
m_angle = 360;
CreateMeshPanorama();
- m_numfaces = 4;
+ m_numfaces = 6;
break;
case DOME_OFFSET:
//the same as DOME_FISHEYE > 250\xBA
@@ -147,7 +149,7 @@
// m_offset = 0.99;
m_angle = 360;
- CreateMeshDome250(m_resolution);
+ CreateMeshDome250();
m_numfaces = 6;
break;
default: // temporary
@@ -248,23 +250,31 @@
}
}
else if (m_mode == DOME_PANORAM_SPH){
+
glNewList(dlistId, GL_COMPILE);
+ GLDrawTriangles(cubetop, nfacestop);
+ glEndList();
+
+ glNewList(dlistId+1, GL_COMPILE);
+ GLDrawTriangles(cubebottom, nfacesbottom);
+ glEndList();
+
+ glNewList(dlistId+2, GL_COMPILE);
GLDrawTriangles(cubeleft, nfacesleft);
glEndList();
- glNewList(dlistId+1, GL_COMPILE);
+ glNewList(dlistId+3, GL_COMPILE);
GLDrawTriangles(cuberight, nfacesright);
glEndList();
- glNewList(dlistId+3, GL_COMPILE);
+ glNewList(dlistId+4, GL_COMPILE);
GLDrawTriangles(cubeleftback, nfacesleftback);
glEndList();
- glNewList(dlistId+2, GL_COMPILE);
+ glNewList(dlistId+5, GL_COMPILE);
GLDrawTriangles(cuberightback, nfacesrightback);
glEndList();
}
-
//clearing the vectors
cubetop.clear();
cubebottom.clear();
@@ -291,7 +301,7 @@
}
glEnd();
}
-void KX_Dome::CreateMeshDome180(int cubeRes)
+void KX_Dome::CreateMeshDome180(void)
{
/*
1)- Define the faces of half of a cube
@@ -372,6 +382,7 @@
cubeleft[0].u[2] = 0.0;
cubeleft[0].v[2] = uv_ratio;
+ //second triangle
cubeleft[1].verts[0][0] = -sqrt_2 / 2.0;
cubeleft[1].verts[0][1] = 0.0;
cubeleft[1].verts[0][2] = 0.5;
@@ -411,6 +422,7 @@
cuberight[0].u[2] = uv_ratio;
cuberight[0].v[2] = uv_ratio;
+ //second triangle
cuberight[1].verts[0][0] = 0.0;
cuberight[1].verts[0][1] = sqrt_2 / 2.0;
cuberight[1].verts[0][2] = -0.5;
@@ -434,7 +446,7 @@
//Refine a triangular mesh by bisecting each edge forms 3 new triangles for each existing triangle on each iteration
//Could be made more efficient for drawing if the triangles were ordered in a fan. Not that important since we are using DisplayLists
- for(i=0;i<cubeRes;i++){
+ for(i=0;i<m_resolution;i++){
cubetop.resize(4*nfacestop);
SplitFace(cubetop,&nfacestop);
cubebottom.resize(4*nfacesbottom);
@@ -469,7 +481,7 @@
}
-void KX_Dome::CreateMeshDome250(int resolution)
+void KX_Dome::CreateMeshDome250(void)
{
/*
1)- Define the faces of a cube without the back face
@@ -701,7 +713,7 @@
nfacesbottom = 2;
- if(m_angle > 250){
+ if(m_angle > 250){ //not using
cubeback[0].verts[0][0] = 1.0;
cubeback[0].verts[0][1] =-1.0;
@@ -746,7 +758,7 @@
//Refine a triangular mesh by bisecting each edge forms 3 new triangles for each existing triangle on each iteration
//It could be made more efficient for drawing if the triangles were ordered in a strip!
- for(i=0;i<resolution;i++){
+ for(i=0;i<m_resolution;i++){
cubefront.resize(4*nfacesfront);
SplitFace(cubefront,&nfacesfront);
cubetop.resize(4*nfacestop);
@@ -762,6 +774,7 @@
SplitFace(cubeback,&nfacesback);
}
}
+/*
if(m_mode == DOME_OFFSET){ // double the resolution of the top (front)
cubefront.resize(4*nfacesfront);
SplitFace(cubefront,&nfacesfront);
@@ -849,14 +862,90 @@
*/
int i,j;
float uv_ratio;
-// float verts_height;
-// float rad_ang = m_angle * MT_PI / 180.0;
float sqrt_2 = sqrt(2.0);
-// verts_height = tan((rad_ang/2) - (MT_PI/2));//for 180 - M_PI/2 for 270 -
uv_ratio = (float)m_buffersize / m_imagesize;
- printf("uv_ratio: %4.2f\n", uv_ratio);//XXX
+ /* Top face - two triangles */
+ cubetop[0].verts[0][0] = -sqrt_2;
+ cubetop[0].verts[0][1] = 0.0;
+ cubetop[0].verts[0][2] = 1.0;
+ cubetop[0].u[0] = 0.0;
+ cubetop[0].v[0] = uv_ratio;
+
+ cubetop[0].verts[1][0] = 0.0;
+ cubetop[0].verts[1][1] = sqrt_2;
+ cubetop[0].verts[1][2] = 1.0;
+ cubetop[0].u[1] = 0.0;
+ cubetop[0].v[1] = 0.0;
+
+ //second triangle
+ cubetop[0].verts[2][0] = sqrt_2;
+ cubetop[0].verts[2][1] = 0.0;
+ cubetop[0].verts[2][2] = 1.0;
+ cubetop[0].u[2] = uv_ratio;
+ cubetop[0].v[2] = 0.0;
+
+ cubetop[1].verts[0][0] = sqrt_2;
+ cubetop[1].verts[0][1] = 0.0;
+ cubetop[1].verts[0][2] = 1.0;
+ cubetop[1].u[0] = uv_ratio;
+ cubetop[1].v[0] = 0.0;
+
+ cubetop[1].verts[1][0] = 0.0;
+ cubetop[1].verts[1][1] = -sqrt_2;
+ cubetop[1].verts[1][2] = 1.0;
+ cubetop[1].u[1] = uv_ratio;
+ cubetop[1].v[1] = uv_ratio;
+
+ cubetop[1].verts[2][0] = -sqrt_2;
+ cubetop[1].verts[2][1] = 0.0;
+ cubetop[1].verts[2][2] = 1.0;
+ cubetop[1].u[2] = 0.0;
+ cubetop[1].v[2] = uv_ratio;
+
+ nfacestop = 2;
+
+ /* Bottom face - two triangles */
+ cubebottom[0].verts[0][0] = -sqrt_2;
+ cubebottom[0].verts[0][1] = 0.0;
+ cubebottom[0].verts[0][2] = -1.0;
+ cubebottom[0].u[0] = uv_ratio;
+ cubebottom[0].v[0] = 0.0;
+
+ cubebottom[0].verts[1][0] = sqrt_2;
+ cubebottom[0].verts[1][1] = 0.0;
+ cubebottom[0].verts[1][2] = -1.0;
+ cubebottom[0].u[1] = 0.0;
+ cubebottom[0].v[1] = uv_ratio;
+
+ cubebottom[0].verts[2][0] = 0.0;
+ cubebottom[0].verts[2][1] = sqrt_2;
+ cubebottom[0].verts[2][2] = -1.0;
+ cubebottom[0].u[2] = 0.0;
+ cubebottom[0].v[2] = 0.0;
+
+ //second triangle
+ cubebottom[1].verts[0][0] = sqrt_2;
+ cubebottom[1].verts[0][1] = 0.0;
+ cubebottom[1].verts[0][2] = -1.0;
+ cubebottom[1].u[0] = 0.0;
+ cubebottom[1].v[0] = uv_ratio;
+
+ cubebottom[1].verts[1][0] = -sqrt_2;
+ cubebottom[1].verts[1][1] = 0.0;
+ cubebottom[1].verts[1][2] = -1.0;
+ cubebottom[1].u[1] = uv_ratio;
+ cubebottom[1].v[1] = 0.0;
+
+ cubebottom[1].verts[2][0] = 0.0;
+ cubebottom[1].verts[2][1] = -sqrt_2;
+ cubebottom[1].verts[2][2] = -1.0;
+ cubebottom[1].u[2] = uv_ratio;
+ cubebottom[1].v[2] = uv_ratio;
+
+ nfacesbottom = 2;
+
/* Left Back (135\xBA) face - two triangles */
cubeleftback[0].verts[0][0] = 0;
@@ -877,6 +966,7 @@
cubeleftback[0].u[2] = 0;
cubeleftback[0].v[2] = uv_ratio;
+ //second triangle
cubeleftback[1].verts[0][0] = 0;
cubeleftback[1].verts[0][1] = -sqrt_2;
cubeleftback[1].verts[0][2] = 1.0;
@@ -917,6 +1007,7 @@
cubeleft[0].u[2] = 0;
cubeleft[0].v[2] = uv_ratio;
+ //second triangle
cubeleft[1].verts[0][0] = -sqrt_2;
cubeleft[1].verts[0][1] = 0;
cubeleft[1].verts[0][2] = 1.0;
@@ -956,6 +1047,7 @@
cuberight[0].u[2] = uv_ratio;
cuberight[0].v[2] = uv_ratio;
+ //second triangle
cuberight[1].verts[0][0] = 0;
cuberight[1].verts[0][1] = sqrt_2;
cuberight[1].verts[0][2] = -1.0;
@@ -995,6 +1087,7 @@
cuberightback[0].u[2] = uv_ratio;
cuberightback[0].v[2] = uv_ratio;
+ //second triangle
cuberightback[1].verts[0][0] = sqrt_2;
cuberightback[1].verts[0][1] = 0;
cuberightback[1].verts[0][2] = -1.0;
@@ -1025,6 +1118,10 @@
SplitFace(cubeleftback,&nfacesleftback);
cuberightback.resize(4*nfacesrightback);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list