[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