[Bf-blender-cvs] [de60a9646a6] soc-2018-npr: Continue modifying files. Don't compile!
Nick Wu
noreply at git.blender.org
Thu Jun 21 10:36:38 CEST 2018
Commit: de60a9646a6fddbe0413aab87385bf37020f3a54
Author: Nick Wu
Date: Thu Jun 21 16:36:01 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rBde60a9646a6fddbe0413aab87385bf37020f3a54
Continue modifying files. Don't compile!
===================================================================
M source/blender/draw/engines/lanpr/lanpr_all.h
M source/blender/draw/engines/lanpr/lanpr_ops.c
M source/blender/draw/engines/lanpr/lanpr_util.c
M source/blender/draw/engines/lanpr/lanpr_util.h
===================================================================
diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h
index 13730411f03..6cf5686a08d 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -268,8 +268,8 @@ typedef struct LANPR_RenderBuffer {
int TileSizeW, TileSizeH;
int TileCountX, TileCountY;
real WidthPerTile, HeightPerTile;
- //tnsMatrix44d ViewProjection;
- //tnsMatrix44d VPInverse;
+ tnsMatrix44d ViewProjection;
+ tnsMatrix44d VPInverse;
nSafeString* OutputFolder;//end with a slash;
nSafeString* ImagePrefix;
@@ -350,7 +350,7 @@ typedef struct LANPR_RenderBuffer {
//tnsRenderBufferPreviewNode RenderPreview[32];
struct Scene* Scene;
- struct Camera* Camera;
+ struct Object* Camera;
//tnsRenderTriangles are in mesh object.
}LANPR_RenderBuffer;
@@ -366,9 +366,9 @@ typedef struct LANPR_RenderTriangle {
real GN[3];
real GC[3];
struct BMFace* F;
- ListBase IntersectingVerts;
+ nListHandle IntersectingVerts;
char CullStatus;
- struct LANPR_RenderLine* Testing; //Should Be tRT** Testing[NumOfThreads]
+ struct LANPR_RenderTriangle* Testing; //Should Be tRT** Testing[NumOfThreads]
}LANPR_RenderTriangle;
typedef struct LANPR_RenderTriangleThread {
@@ -399,7 +399,7 @@ typedef struct LANPR_RenderVert{
int FrameBufferCoordi[2];
struct BMVert* V; //Used As R When Intersecting
struct LANPR_RenderLine* IntersectingLine;
- struct LANPR_RenderVert* IntersectintLine2;
+ struct LANPR_RenderLine* IntersectintLine2;
struct LANPR_RenderTriangle* IntersectWith; // Positive 1 Negative 0
//tnsRenderTriangle* IntersectingOnFace; // <| |>
char Positive; // L---->|----->R L---->|----->R
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 5e3774d1256..c1be3220778 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -39,6 +39,10 @@ Author(s):WuYiming - xp8110 at outlook.com
struct Object;
+
+int lanpr_TriangleLineImageSpaceIntersectTestOnlyV2(LANPR_RenderTriangle* rt, LANPR_RenderLine* rl, Camera* cam, tnsMatrix44d vp, double* From, double* To);
+
+
/* ====================================== base structures =========================================== */
#define TNS_BOUND_AREA_CROSSES(b1,b2)\
@@ -91,7 +95,7 @@ void lanpr_MakeInitialBoundingAreas(LANPR_RenderBuffer* rb) {
}
void lanpr_ConnectNewBoundingAreas(LANPR_RenderBuffer* rb, LANPR_BoundingArea* Root) {
LANPR_BoundingArea* ba = Root->Child, *tba;
- nListItemPointer* lip,*lip2,*lip3,*NextLip;
+ nListItemPointer* lip,*lip2,*NextLip;
nStaticMemoryPool* mph= &rb->RenderDataPool;
lstAppendPointerStaticPool(mph, &ba[1].RP, &ba[0]);
@@ -257,8 +261,6 @@ int lanpr_LineCrossesBoundingArea(LANPR_RenderBuffer* fb, tnsVector2d L, tnsVect
return 0;
}
int lanpr_TriangleCoversBoundingArea(LANPR_RenderBuffer* fb, LANPR_RenderTriangle* rt, LANPR_BoundingArea* ba) {
-
- real vx, vy;
tnsVector2d p1, p2, p3, p4;
real
*FBC1 = rt->V[0]->FrameBufferCoord,
@@ -341,12 +343,12 @@ void lanpr_AddTriangles(LANPR_RenderBuffer* rb) {
LANPR_RenderTriangle* rt;
LANPR_RenderTile* tile;
tnsMatrix44d VP;
- Camera* c = ((Camera*)rb->Scene->ActiveCamera);
+ Camera* c = ((Camera*)rb->Scene->camera);
int i, lim;
int x1, x2, y1, y2;
int r, co;
//tnsMatrix44d proj, view, result, inv;
- //tMatMakePerspectiveMatrix44d(proj, c->FOV, (real)fb->W / (real)fb->H, c->ZMin, c->ZMax);
+ //tMatMakePerspectiveMatrix44d(proj, c->FOV, (real)fb->W / (real)fb->H, c->clipsta, c->clipend);
//tMatLoadIdentity44d(view);
//tObjApplySelfTransformMatrix(c, 0);
//tObjApplyGlobalTransformMatrixReverted(c);
@@ -682,7 +684,7 @@ void lanpr_CalculateSingleLineOcclusion(LANPR_RenderBuffer* rb, LANPR_RenderLine
LANPR_RenderTriangleThread* rt;
nListItemPointer* lip;
LANPR_RenderVert* rv;
- Camera* c = rb->Scene->ActiveCamera;
+ Camera* c = rb->Scene->camera->data;
real l, r;
real k = (rl->R->FrameBufferCoord[1] - rl->L->FrameBufferCoord[1]) / (rl->R->FrameBufferCoord[0] - rl->L->FrameBufferCoord[0] + 1e-30);
int PositiveX = (rl->R->FrameBufferCoord[0] - rl->L->FrameBufferCoord[0])>0 ? 1 : 0;
@@ -1457,31 +1459,31 @@ void lanpr_CullTriangles(LANPR_RenderBuffer* rb) {
void lanpr_PerspectiveDivision(LANPR_RenderBuffer* rb) {
LANPR_RenderVert* rv;
LANPR_RenderElementLinkNode* reln;
- Camera* cam = rb->Scene->ActiveCamera;
+ Camera* cam = rb->Scene->camera->data;
int i;
- if (cam->CameraType == TNS_CAMERA_ORTHO) return;
+ if (cam->type == CAM_PERSP) return;
for (reln = rb->VertexBufferPointers.pFirst; reln; reln = reln->Item.pNext) {
rv = reln->Pointer;
for (i = 0; i < reln->ElementCount; i++) {
//if (rv->FrameBufferCoord[2] < -DBL_EPSILON) continue;
tMatVectorMultiSelf3d(rv[i].FrameBufferCoord, 1 / rv[i].FrameBufferCoord[3]);
- rv[i].FrameBufferCoord[2] = cam->ZMin*cam->ZMax / (cam->ZMax - fabs(rv[i].FrameBufferCoord[2]) * (cam->ZMax - cam->ZMin));
+ rv[i].FrameBufferCoord[2] = cam->clipsta*cam->clipend / (cam->clipend - fabs(rv[i].FrameBufferCoord[2]) * (cam->clipend - cam->clipsta));
}
}
}
-void lanpr_TransformRenderVert(BMVert* V, LANPR_RenderVert* RVBuf, real* MVMat, real* MVPMat, Camera* Camera) {//real HeightMultiply, real ZMin, real ZMax) {
+void lanpr_TransformRenderVert(BMVert* V, LANPR_RenderVert* RVBuf, real* MVMat, real* MVPMat, Camera* Camera) {//real HeightMultiply, real clipsta, real clipend) {
LANPR_RenderVert* rv = &RVBuf[V->I];
rv->V = V;
V->RV = rv;
- tMatApplyTransform43d(rv->GLocation, MVMat, V->P);
- tMatApplyTransform44d(rv->FrameBufferCoord, MVPMat, V->P);
+ tMatApplyTransform43df(rv->GLocation, MVMat, V->co);
+ tMatApplyTransform43df(rv->FrameBufferCoord, MVPMat, V->co);
//if(rv->FrameBufferCoord[2]>0)tMatVectorMultiSelf3d(rv->FrameBufferCoord, (1 / rv->FrameBufferCoord[3]));
//else tMatVectorMultiSelf3d(rv->FrameBufferCoord, -rv->FrameBufferCoord[3]);
- // rv->FrameBufferCoord[2] = Camera->ZMin* Camera->ZMax / (Camera->ZMax - fabs(rv->FrameBufferCoord[2]) * (Camera->ZMax - Camera->ZMin));
+ // rv->FrameBufferCoord[2] = Camera->clipsta* Camera->clipend / (Camera->clipend - fabs(rv->FrameBufferCoord[2]) * (Camera->clipend - Camera->clipsta));
}
void lanpr_CalculateRenderTriangleNormal(LANPR_RenderTriangle* rt) {
tnsVector3d L, R;
@@ -1501,7 +1503,7 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* o, real* MVMat, real* MVPM
tnsMatrix44d NewMV;
LANPR_RenderBuffer* fb = rb->FrameBuffer;
LANPR_RenderElementLinkNode* reln;
- Camera* c = rb->Scene->ActiveCamera;
+ Camera* c = rb->Scene->camera->data;
Material* m;
//if (o->RenderTriangles) FreeMem(o->RenderTriangles);
@@ -1512,13 +1514,13 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* o, real* MVMat, real* MVPM
if (o->Type == TNS_OBJECT_MESH) {
mo = o;
- o->RenderVertices = CreateNewBuffer(LANPR_RenderVert, mo->numV);
+ o->RenderVertices = CreateNewBuffer(LANPR_RenderVert, mo->totvert);
o->RenderTriangles = calloc(mo->TriangleCount, rb->TriangleSize);//CreateNewBuffer(LANPR_RenderTriangle, mo->TriangleCount);
//o->RenderLines = CreateNewBuffer(LANPR_RenderLine, mo->TriangulatedEdgeCount);
reln = lstAppendPointerStaticSized(&rb->VertexBufferPointers, &rb->RenderDataPool, o->RenderVertices,
sizeof(LANPR_RenderElementLinkNode));
- reln->ElementCount = mo->numV;
+ reln->ElementCount = mo->totvert;
reln->ObjectRef = mo;
reln = lstAppendPointerStaticSized(&rb->TriangleBufferPointers, &rb->RenderDataPool, o->RenderTriangles,
@@ -1527,8 +1529,8 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* o, real* MVMat, real* MVPM
reln->ObjectRef = mo;
for (v = mo->V.pFirst; v; v = v->Item.pNext) {
- lanpr_TransformRenderVert(v, o->RenderVertices, NewMV, NewMVP, c);//,HeightMultiply,c->ZMin,c->ZMax);
- tObjRecalculateVertNormal(v);
+ lanpr_TransformRenderVert(v, o->RenderVertices, NewMV, NewMVP, c);//,HeightMultiply,c->clipsta,c->clipend);
+ //tObjRecalculateVertNormal(v);
}
for (e = mo->E.pFirst; e; e = e->Item.pNext) {
@@ -1544,12 +1546,12 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* o, real* MVMat, real* MVPM
rt = o->RenderTriangles;
for (f = mo->F.pFirst; f; f = f->Item.pNext) {
- tObjRecalculateFaceAverageNormal(f);
- tObjSimpleTriangulateRender(f, rt, rb->TriangleSize, o->RenderVertices, &rb->AllRenderLines, &rt, &rb->RenderDataPool);
+ //tObjRecalculateFaceAverageNormal(f);
+ //tObjSimpleTriangulateRender(f, rt, rb->TriangleSize, o->RenderVertices, &rb->AllRenderLines, &rt, &rb->RenderDataPool);
// already done in the func above. lanpr_CalculateRenderTriangleNormal(rt);
tMatApplyNormalTransform43d(f->GNormal, MVMat, f->FaceNormal);
tMatNormalizeSelf3d(f->GNormal);
- m = tnsGetIndexedMaterial(rb->Scene, f->MaterialID);
+ //m = tnsGetIndexedMaterial(rb->Scene, f->MaterialID);
//if(m) m->PreviewVCount += (f->TriangleCount*3);
}
}
@@ -1561,7 +1563,7 @@ void lanpr_MakeRenderGeometryBuffersRecursive(Object* o, real* MVMat, real* MVPM
void tnsMakeRenderGeometryBuffers(Scene* s, Camera* c, LANPR_RenderBuffer* rb, int HeightMultiply) {
Object* o;
tnsMatrix44d proj, view, result, inv;
- LANPR_RenderBuffer* fb = rb->FrameBuffer;
+ LANPR_RenderBuffer* fb = rb;
if (!c) return;
@@ -1569,17 +1571,17 @@ void tnsMakeRenderGeometryBuffers(Scene* s, Camera* c, LANPR_RenderBuffer* rb, i
real asp = ((real)fb->W / (real)fb->H);
- if (c->CameraType == TNS_CAMERA_PERSPECTIVE) {
- tMatMakePerspectiveMatrix44d(proj, c->FOV, asp, c->ZMin, c->ZMax);
- }elif(c->CameraType == TNS_CAMERA_ORTHO) {
+ if (c->type == CAM_PERSP) {
+ tMatMakePerspectiveMatrix44d(proj, c->FOV, asp, c->clipsta, c->clipend);
+ }elif(c->type == CAM_ORTHO) {
real w = c->OrthScale;
- tMatMakeOrthographicMatrix44d(proj, -w, w, -w / asp, w / asp, c->ZMin, c->ZMax);
+ tMatMakeOrthographicMatrix44d(proj, -w, w, -w / asp, w / asp, c->clipsta, c->clipend);
}
tMatLo
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list