[Bf-blender-cvs] [7d1224406c9] soc-2018-npr: Made a switch under Scene, and added files for LANPR adoptation.

Nick Wu noreply at git.blender.org
Tue May 22 09:01:54 CEST 2018


Commit: 7d1224406c9c6fe0b33d2a43aeb42b13402650de
Author: Nick Wu
Date:   Tue May 22 15:01:16 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB7d1224406c9c6fe0b33d2a43aeb42b13402650de

Made a switch under Scene, and added files for LANPR adoptation.

===================================================================

M	release/datafiles/locale
M	release/scripts/addons
M	release/scripts/addons_contrib
M	release/scripts/startup/bl_ui/properties_scene.py
M	source/blender/draw/CMakeLists.txt
A	source/blender/draw/engines/lanpr/NUL_TNS.h
A	source/blender/draw/engines/lanpr/NUL_TNS_EdgeRendering.c
A	source/blender/draw/engines/lanpr/NUL_TNS_Kernel.c
A	source/blender/draw/engines/lanpr/NUL_TNS_Mesh.c
A	source/blender/draw/engines/lanpr/NUL_TNS_SoftwareRender.c
A	source/blender/draw/engines/lanpr/NUL_Util.c
A	source/blender/draw/engines/lanpr/NUL_Util.h
A	source/blender/draw/engines/lanpr/shaders/TNS_AtlasPreview.geometry
A	source/blender/draw/engines/lanpr/shaders/TNS_AtlasProjectClip.fragment
A	source/blender/draw/engines/lanpr/shaders/TNS_AtlasProjectPassThrough.vertex
A	source/blender/draw/engines/lanpr/shaders/TNS_ImagePeel.fragment
A	source/blender/draw/engines/lanpr/shaders/TNS_LineConnection.geometry
A	source/blender/draw/engines/lanpr/shaders/TNS_SnakeEdge.fragment
A	source/blender/makesdna/DNA_lanpr_types.h
M	source/blender/makesdna/DNA_scene_types.h
A	source/blender/makesrna/intern/rna_lanpr.c
M	source/blender/makesrna/intern/rna_scene.c
M	source/tools

===================================================================

diff --git a/release/datafiles/locale b/release/datafiles/locale
index d3349b42856..469c949d1ca 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit d3349b42856d00c278f72f2a5909a6c96b9cdb5e
+Subproject commit 469c949d1ca882be19daa128842f813b72a944d8
diff --git a/release/scripts/addons b/release/scripts/addons
index 8f2fd7e23f0..c88411ff777 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 8f2fd7e23f0b5ce023440182f51c40e88d663325
+Subproject commit c88411ff7776a2db5d6ef6117a1b2faa42a95611
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 34a27a42d78..310578043de 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 34a27a42d781d80f9f1833bad8cc5b2abcac2933
+Subproject commit 310578043dec1aae382eb6a447ae1d103792d7e6
diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py
index 545d0d696dc..61b5bcdb6a0 100644
--- a/release/scripts/startup/bl_ui/properties_scene.py
+++ b/release/scripts/startup/bl_ui/properties_scene.py
@@ -443,6 +443,19 @@ class SCENE_PT_viewport_display(SceneButtonsPanel, Panel):
         layout.prop(scene.display, "light_direction", text="")
         layout.prop(scene.display, "shadow_shift")
 
+class SCENE_PT_lanpr(SceneButtonsPanel, PropertyPanel, Panel):
+    COMPAT_ENGINES = {'BLENDER_CLAY'}
+    bl_label = "LANPR AHOY"
+    
+    @classmethod
+    def poll(cls, context):
+        return True
+
+    def draw(self, context):
+        layout = self.layout
+        scene = context.scene
+        layout.prop(scene.lanpr, "enable_post_processing")
+
 
 class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_CLAY', 'BLENDER_EEVEE'}
@@ -465,6 +478,7 @@ classes = (
     SCENE_PT_rigid_body_cache,
     SCENE_PT_rigid_body_field_weights,
     SCENE_PT_simplify,
+    SCENE_PT_lanpr,
     SCENE_PT_custom_props,
 )
 
diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt
index 9478d41f6db..3896da2e235 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -110,6 +110,11 @@ set(SRC
 	engines/workbench/workbench_studiolight.c
 	engines/workbench/solid_mode.c
 	engines/external/external_engine.c
+	#engines/lanpr/NUL_TNS_Kernel.c
+	#engines/lanpr/NUL_Util.c
+	#engines/lanpr/NUL_TNS_SoftwareRender.c
+    #engines/lanpr/NUL_TNS_EdgeRendering.c
+    #engines/lanpr/NUL_TNS_Mesh.c
 
 	DRW_engine.h
 	intern/DRW_render.h
@@ -129,6 +134,9 @@ set(SRC
 	engines/eevee/eevee_lut.h
 	engines/eevee/eevee_private.h
 	engines/external/external_engine.h
+
+	#engines/lanpr/NUL_TNS.h
+	#engines/lanpr/NUL_Util.h
 )
 
 if(WITH_CLAY_ENGINE)
diff --git a/source/blender/draw/engines/lanpr/NUL_TNS.h b/source/blender/draw/engines/lanpr/NUL_TNS.h
new file mode 100644
index 00000000000..336f0143478
--- /dev/null
+++ b/source/blender/draw/engines/lanpr/NUL_TNS.h
@@ -0,0 +1,2022 @@
+#pragma once
+
+#include "NUL4.h"
+#include "tinycthread.h"
+#include <float.h>
+
+#define TNS_PI 3.1415926535897932384626433832795
+#define deg(r) r/TNS_PI*180.0
+#define rad(d) d*TNS_PI/180.0
+
+
+//typedef real tnsMatrix33d[9];
+
+typedef float tnsMatrix44f[16];
+
+typedef real tnsMatrix44d[16];
+typedef real tnsVector2d[2];
+typedef real tnsVector3d[3];
+typedef real tnsVector4d[4];
+
+typedef int tnsVector2i[2];
+
+//typedef double tnsMatrix33d[9];
+//typedef double tnsMatrix44d[16];
+//
+typedef struct _tnsMatrixStackItem tnsMatrixStackItem;
+struct _tnsMatrixStackItem{
+	tnsMatrix44d view;
+	tnsMatrix44d model;
+	tnsMatrix44d projection;
+};
+typedef struct _tnsMatrixStack tnsMatrixStack;
+struct _tnsMatrixStack{
+	tnsMatrixStackItem* level;
+	int                 current_level;
+	int                 max_level;
+};
+
+typedef struct _tnsShader tnsShader;
+struct _tnsShader{
+	nListItem          Item;
+	int                vtShaderID;
+	int                fgShaderID;
+	int                glProgramID;
+
+	int                CustomID;
+
+	int                modelIndex;
+	int                projectionIndex;
+	int                viewIndex;
+	int                projectionInverseIndex;
+
+	int                vertexIndex;
+	int                normalIndex;
+	int                colorIndex;
+	int                uvIndex;
+	int                texture0Index;
+	int                texture1Index;
+	int                texture2Index;
+	int                texture3Index;
+	int                texture4Index;
+
+	int                uniform0Index;
+	int                uniform1Index;
+	int                uniform2Index;
+	int                uniform3Index;
+	int                uniform4Index;
+	int                uniform5Index;
+	int                uniform6Index;
+	int                uniform7Index;
+};
+typedef struct _tnsTexture tnsTexture;
+typedef struct _tnsCommand tnsCommand;
+struct _tnsCommand{
+	GLenum Mode;
+	short  Dimentions;// 2 or 3
+	char   UseVert;
+	char   UseColor;
+	char   UseNormal;
+	char   UseTexCoord;
+	char   UseIndex;
+	GLenum PolyMode;//0-solid 1-wire
+	GLenum Shade;//0-falt 1-smooth
+	GLfloat UniformColor[4];
+
+	short NumVert;
+	short NumIndex;
+	short VertBegin;
+	short VertEnd;//'END'is the next one after the last one.
+	short ColorBegin;
+	short ColorEnd;
+	short TexCoordBegin;
+	short TexCoordEnd;
+    short NormalBegin;
+	short NormalEnd;
+	GLushort IndexBegin;
+	GLushort IndexEnd;
+
+	tnsShader*  ReplaceShader;
+	tnsTexture* Texture0;
+	tnsTexture* Texture1;
+	tnsTexture* Texture2;
+};
+typedef struct _tnsMain tnsMain;
+typedef struct _tnsScene tnsScene;
+typedef struct _tnsWorld tnsWorld;
+struct _tnsWorld{
+	nHyperItem  Item;
+	nListHandle Scenes;
+	tnsScene*   ActiveScene;
+
+	//Basic Properties;
+	u16bit      TimeYear;
+	u8bit       TimeMonth;
+	u8bit       TimeDay;
+
+	nListHandle BezierCurves;
+	nListHandle  Meshes;
+};
+
+NEED_STRUCTURE(tnsLoopItem);
+NEED_STRUCTURE(tnsRenderLine);
+NEED_STRUCTURE(tnsRenderBuffer);
+
+STRUCTURE(tnsFilterKernel) {
+	int Size;
+	real* Kernel;
+};
+
+STRUCTURE(tnsTriangulateNode) {
+	char  Picked;
+	real Angle;//rad
+	tnsLoopItem* LoopItem;
+	tnsRenderLine* FowardRL;
+	tnsRenderLine* BackwardRL;
+};
+STRUCTURE(tnsTriangulateEdgeNode) {
+	tnsRenderLine* RL;
+
+};
+
+struct _tnsMain{
+	nHyperItem     Item;
+
+	tnsMatrixStack stack;
+
+	nListHandle    Shaders;
+	int            NextShaderIndex;
+	tnsShader*     CurrentShader;
+	tnsShader*     BindedShader;
+
+	//int            MatrixMode;
+	int            IsOffscreen;
+
+	char*          GLVersionStr;
+	char*          GLVendorStr;
+	char*          GLRendererStr;
+	char*          GLSLVersionStr;
+
+
+	tnsShader*     uiShader;
+	tnsShader*     stringShader;
+	tnsShader*     TextureShader;
+	tnsShader*     RectangleTextureShader;
+	tnsShader*     TextureMultiplyShader;
+	tnsShader*     MSTextureShader;
+	tnsShader*     MSATextureShader;
+	tnsShader*     TEST_MatcapShader;
+	tnsShader*     TransparentGridShader;
+	tnsShader*     SobelColorShader;
+	tnsShader*     SobelShader;
+	tnsShader*     ExtraBuffersShader;
+
+	tnsShader*     AtlasTransformShader;
+	tnsShader*     AtlasPreviewShader;
+
+	tnsShader*     ImagePeelShader;
+	tnsShader*     LineConnectionShader;
+
+	nListHandle    Textures;
+	tnsTexture*    PreviewTexture;
+
+	tnsFilterKernel EdgeGaussFilter;
+
+	GLenum         GlTextureSets;
+
+	GLenum         StateShadeMode;
+	GLenum         StatePolyMode;
+	tnsTexture*    StateTexture0;
+	tnsTexture*    StateTexture1;
+	tnsTexture*    StateTexture2;
+	tnsTexture*    Texture0Enabled;
+	tnsTexture*    Texture1Enabled;
+	tnsTexture*    Texture2Enabled;
+	tnsTexture*    Texture3Enabled;
+	tnsTexture*    Texture4Enabled;
+
+	GLfloat        StateColor[4];
+	
+	GLfloat        Vert[8192];
+	GLuint         VertBufObject;
+	short          NextVert;
+	
+	GLfloat        Color[8192];
+	GLuint         ColorBufObject;
+	short          NextColor;
+
+	GLfloat        Normal[8192];
+	GLuint         NormalBufObject;
+	short          NextNormal;
+
+	GLfloat        TexCoord[8192];
+	GLuint         TexCoordBufObject;
+	short          NextTexCoord;
+
+
+	GLushort       Index[1024];
+	GLuint         IndexBufObject;
+	GLushort       NextIndex;
+
+	tnsTriangulateNode SharedTN[4096];
+	u32bit             SharedTEBuf[4096];
+	tnsRenderLine*     SharedRLBuf[4096];
+
+	tnsCommand     DrawingCommand[128];
+	tnsCommand*    UsingCommand;
+
+	tnsWorld       World;
+
+	nListHandle      RenderBuffers;
+	tnsRenderBuffer* ActiveRenderBuffer;
+};
+
+typedef struct _tnsLineStripPoint tnsLineStripPoint;
+struct _tnsLineStripPoint {
+	nListItem  Item;
+	tnsVector3d P;
+};
+
+typedef struct _tnsLineStrip tnsLineStrip;
+struct _tnsLineStrip {
+	nListItem Item;
+	nListHandle Points;
+	int PointCount;
+};
+
+#define TNS_SNAKE_STRENGTH_LIMIT 30
+#define TNS_SNAKE_STEP_LENGTH 5
+#define TNS_SNAKE_STRENGTH_MARCHING_LIMIT 30
+
+#define TNS_SNAKE_EDGE_WIDTH 2
+#define TNS_SNAKE_FILTER_SIZE 6
+#define TNS_SNAKE_ANGLE_DEVIATE 0.5
+#define TNS_SNAKE_ANGLE_PRICISION 1
+#define TNS_SNAKE_STEP1 3
+#define TNS_SNAKE_STEP2 5
+
+
+typedef struct _tnsTextureSample tnsTextureSample;
+struct _tnsTextureSample {
+	nListItem Item;
+	u8bit     Sample;
+	int       X,Y;
+	real      Z;
+};
+
+typedef struct _tnsTexture tnsTexture;
+struct _tnsTexture{
+	nListItem Item;
+
+	int    IsRenderBuffer;
+
+	GLuint GLTexHandle;
+	GLuint GLTexBitsType;//like GL_RGBA
+	GLuint DataFormat;
+	GLuint DataType;
+	GLuint GLTexType;    //like GL_TEXTURE_2D
+	int    Width;
+	int    Height;
+
+	void*  DrawData;
+
+
+	int    RBWidth, RBHeight;
+	int    ElemSize;
+	void*  TextureReadBack;
+	void** SamplePtr;
+	nListHandle PendingSamples;
+	nListHandle ErasedSamples;
+
+	nListHandle LineStrips;
+};
+
+typedef struct _tnsOffscreen tnsOffscreen;
+struct _tnsOffscreen{
+	nListItem  Item;
+
+	tnsTexture* pColorTextures[16];
+	tnsTexture* pDepthTexture;
+	tnsTexture* pStencilTexture;
+
+	GLuint      FboHandle;
+
+	int         UseSecondary;
+};
+
+#define TNS_PROJECTION_MATRIX 1
+#define TNS_MODEL_MATRIX  2
+#define TNS_VIEW_MATRIX   3
+#define TNS_TEXTURE_MATRIX    4
+
+//=============================================================

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list