[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