[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12219] trunk/blender/extern: initial commit
Alfredo de Greef
eeshlo at yahoo.com
Sun Oct 7 17:54:42 CEST 2007
Revision: 12219
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12219
Author: eeshlo
Date: 2007-10-07 17:54:42 +0200 (Sun, 07 Oct 2007)
Log Message:
-----------
initial commit
Added Paths:
-----------
trunk/blender/extern/qdune/
trunk/blender/extern/qdune/SConstruct
trunk/blender/extern/qdune/ccdata50.dat
trunk/blender/extern/qdune/ccdata50NT.dat
trunk/blender/extern/qdune/core/
trunk/blender/extern/qdune/core/Attributes.cpp
trunk/blender/extern/qdune/core/Attributes.h
trunk/blender/extern/qdune/core/Bound.cpp
trunk/blender/extern/qdune/core/Bound.h
trunk/blender/extern/qdune/core/Camera.cpp
trunk/blender/extern/qdune/core/Camera.h
trunk/blender/extern/qdune/core/Color.cpp
trunk/blender/extern/qdune/core/Color.h
trunk/blender/extern/qdune/core/HierarchicalZbuffer.cpp
trunk/blender/extern/qdune/core/HierarchicalZbuffer.h
trunk/blender/extern/qdune/core/Mathutil.cpp
trunk/blender/extern/qdune/core/Mathutil.h
trunk/blender/extern/qdune/core/Noise.cpp
trunk/blender/extern/qdune/core/Noise.h
trunk/blender/extern/qdune/core/Options.cpp
trunk/blender/extern/qdune/core/Options.h
trunk/blender/extern/qdune/core/QDRender.h
trunk/blender/extern/qdune/core/RenderBucket.cpp
trunk/blender/extern/qdune/core/RenderBucket.h
trunk/blender/extern/qdune/core/State.cpp
trunk/blender/extern/qdune/core/State.h
trunk/blender/extern/qdune/core/Transform.cpp
trunk/blender/extern/qdune/core/Transform.h
trunk/blender/extern/qdune/core/mcqmc.h
trunk/blender/extern/qdune/core/qdVector.cpp
trunk/blender/extern/qdune/core/qdVector.h
trunk/blender/extern/qdune/framebuffer/
trunk/blender/extern/qdune/framebuffer/CImg.h
trunk/blender/extern/qdune/framebuffer/FrameBuffer.cpp
trunk/blender/extern/qdune/framebuffer/FrameBuffer.h
trunk/blender/extern/qdune/framework/
trunk/blender/extern/qdune/framework/Framework.h
trunk/blender/extern/qdune/framework/HybridFramework.cpp
trunk/blender/extern/qdune/framework/HybridFramework.h
trunk/blender/extern/qdune/framework/RayTraceFramework.cpp
trunk/blender/extern/qdune/framework/RayTraceFramework.h
trunk/blender/extern/qdune/framework/ReyesFramework.cpp
trunk/blender/extern/qdune/framework/ReyesFramework.h
trunk/blender/extern/qdune/hider/
trunk/blender/extern/qdune/hider/Hider.h
trunk/blender/extern/qdune/hider/RayTraceHider.cpp
trunk/blender/extern/qdune/hider/RayTraceHider.h
trunk/blender/extern/qdune/hider/ZbufferHider.cpp
trunk/blender/extern/qdune/hider/ZbufferHider.h
trunk/blender/extern/qdune/imgio/
trunk/blender/extern/qdune/imgio/exr_io.cpp
trunk/blender/extern/qdune/imgio/exr_io.h
trunk/blender/extern/qdune/imgio/img_io.h
trunk/blender/extern/qdune/imgio/jpeg_img.cpp
trunk/blender/extern/qdune/imgio/jpeg_img.h
trunk/blender/extern/qdune/mktex.cpp
trunk/blender/extern/qdune/mpgrid/
trunk/blender/extern/qdune/mpgrid/MicroPolygon.cpp
trunk/blender/extern/qdune/mpgrid/MicroPolygon.h
trunk/blender/extern/qdune/mpgrid/MicroPolygonGrid.cpp
trunk/blender/extern/qdune/mpgrid/MicroPolygonGrid.h
trunk/blender/extern/qdune/primitives/
trunk/blender/extern/qdune/primitives/CCSubdivision.cpp
trunk/blender/extern/qdune/primitives/CCSubdivision.h
trunk/blender/extern/qdune/primitives/Curves.cpp
trunk/blender/extern/qdune/primitives/Curves.h
trunk/blender/extern/qdune/primitives/Nurbs.cpp
trunk/blender/extern/qdune/primitives/Nurbs.h
trunk/blender/extern/qdune/primitives/Parametric.cpp
trunk/blender/extern/qdune/primitives/Parametric.h
trunk/blender/extern/qdune/primitives/Patches.cpp
trunk/blender/extern/qdune/primitives/Patches.h
trunk/blender/extern/qdune/primitives/Points.cpp
trunk/blender/extern/qdune/primitives/Points.h
trunk/blender/extern/qdune/primitives/Polygons.cpp
trunk/blender/extern/qdune/primitives/Polygons.h
trunk/blender/extern/qdune/primitives/Primitive.cpp
trunk/blender/extern/qdune/primitives/Primitive.h
trunk/blender/extern/qdune/primitives/Quadrics.cpp
trunk/blender/extern/qdune/primitives/Quadrics.h
trunk/blender/extern/qdune/qdrender.cpp
trunk/blender/extern/qdune/qdtl/
trunk/blender/extern/qdune/qdtl/boolarray.h
trunk/blender/extern/qdune/qdtl/lrulist.h
trunk/blender/extern/qdune/qdtl/qdtl.cpp
trunk/blender/extern/qdune/qdtl/qdtl.h
trunk/blender/extern/qdune/ribparse/
trunk/blender/extern/qdune/ribparse/RIB_parser.cpp
trunk/blender/extern/qdune/ribparse/RIB_parser.h
trunk/blender/extern/qdune/ribparse/decparam.cpp
trunk/blender/extern/qdune/ribparse/decparam.h
trunk/blender/extern/qdune/ribparse/ri.cpp
trunk/blender/extern/qdune/ribparse/ri.h
trunk/blender/extern/qdune/ribparse/ribInterface.cpp
trunk/blender/extern/qdune/ribparse/ribInterface.h
trunk/blender/extern/qdune/ribs/
trunk/blender/extern/qdune/ribs/blsuz.rib
trunk/blender/extern/qdune/ribs/curvetest2.rib
trunk/blender/extern/qdune/ribs/fig12.10.rib
trunk/blender/extern/qdune/ribs/fig12.12.rib
trunk/blender/extern/qdune/ribs/fig12.14.rib
trunk/blender/extern/qdune/ribs/gumbo.rib
trunk/blender/extern/qdune/ribs/mblurtest.rib
trunk/blender/extern/qdune/ribs/nonmanifold.rib
trunk/blender/extern/qdune/ribs/smokesm.rib
trunk/blender/extern/qdune/ribs/suzanne.rib
trunk/blender/extern/qdune/ribs/suzanne_pp.rib
trunk/blender/extern/qdune/ribs/suzgallery.rib
trunk/blender/extern/qdune/ribs/teapot.rib
trunk/blender/extern/qdune/ribs/vase.rib
trunk/blender/extern/qdune/shaders/
trunk/blender/extern/qdune/shaders/SHW_velvet.sqd
trunk/blender/extern/qdune/shaders/SIG2k_srf_fur.sqd
trunk/blender/extern/qdune/shaders/ambientlight.sqd
trunk/blender/extern/qdune/shaders/brushedmetal.sqd
trunk/blender/extern/qdune/shaders/bumptest.sqd
trunk/blender/extern/qdune/shaders/bumpy.sqd
trunk/blender/extern/qdune/shaders/bumpy_surface.sqd
trunk/blender/extern/qdune/shaders/castucco.sqd
trunk/blender/extern/qdune/shaders/ceramictiles.sqd
trunk/blender/extern/qdune/shaders/chebo.sqd
trunk/blender/extern/qdune/shaders/chebo2.sqd
trunk/blender/extern/qdune/shaders/chebo2D.sqd
trunk/blender/extern/qdune/shaders/clay.sqd
trunk/blender/extern/qdune/shaders/colorgrid.sqd
trunk/blender/extern/qdune/shaders/constadd.sqd
trunk/blender/extern/qdune/shaders/constant.sqd
trunk/blender/extern/qdune/shaders/constvary.sqd
trunk/blender/extern/qdune/shaders/dented.sqd
trunk/blender/extern/qdune/shaders/distantlight.sqd
trunk/blender/extern/qdune/shaders/dstex.sqd
trunk/blender/extern/qdune/shaders/fog.sqd
trunk/blender/extern/qdune/shaders/funkyglass.sqd
trunk/blender/extern/qdune/shaders/glossy.sqd
trunk/blender/extern/qdune/shaders/glow.sqd
trunk/blender/extern/qdune/shaders/greenmarble.sqd
trunk/blender/extern/qdune/shaders/hair.sqd
trunk/blender/extern/qdune/shaders/hair_hw.sqd
trunk/blender/extern/qdune/shaders/hypertexture.sqd
trunk/blender/extern/qdune/shaders/lensflare.sqd
trunk/blender/extern/qdune/shaders/luna.sqd
trunk/blender/extern/qdune/shaders/matte.sqd
trunk/blender/extern/qdune/shaders/matte_hw.sqd
trunk/blender/extern/qdune/shaders/matte_illum.sqd
trunk/blender/extern/qdune/shaders/metal.sqd
trunk/blender/extern/qdune/shaders/ndctest.sqd
trunk/blender/extern/qdune/shaders/nizid.sqd
trunk/blender/extern/qdune/shaders/normalshader.sqd
trunk/blender/extern/qdune/shaders/oak.sqd
trunk/blender/extern/qdune/shaders/oakplank.sqd
trunk/blender/extern/qdune/shaders/paintedplastic.sqd
trunk/blender/extern/qdune/shaders/planetatmo.sqd
trunk/blender/extern/qdune/shaders/planetclouds.sqd
trunk/blender/extern/qdune/shaders/plastic.sqd
trunk/blender/extern/qdune/shaders/plastic_hw.sqd
trunk/blender/extern/qdune/shaders/platlight.sqd
trunk/blender/extern/qdune/shaders/pointlight.sqd
trunk/blender/extern/qdune/shaders/roughmetal.sqd
trunk/blender/extern/qdune/shaders/screen.sqd
trunk/blender/extern/qdune/shaders/screen_aa.sqd
trunk/blender/extern/qdune/shaders/shadowdistant.sqd
trunk/blender/extern/qdune/shaders/shadowedclouds.sqd
trunk/blender/extern/qdune/shaders/shadowspot.sqd
trunk/blender/extern/qdune/shaders/skin.sqd
trunk/blender/extern/qdune/shaders/smoke.sqd
trunk/blender/extern/qdune/shaders/spotlight.sqd
trunk/blender/extern/qdune/shaders/spotlight_hw.sqd
trunk/blender/extern/qdune/shaders/st_shader.sqd
trunk/blender/extern/qdune/shaders/starball.sqd
trunk/blender/extern/qdune/shaders/starfield.sqd
trunk/blender/extern/qdune/shaders/stucco.sqd
trunk/blender/extern/qdune/shaders/terran.sqd
trunk/blender/extern/qdune/shaders/uberlight.sqd
trunk/blender/extern/qdune/shaders/veinedmarble.sqd
trunk/blender/extern/qdune/shaders/wood2.sqd
trunk/blender/extern/qdune/shaders/wood2_hw.sqd
trunk/blender/extern/qdune/slcompiler/
trunk/blender/extern/qdune/slcompiler/qdlex.py
trunk/blender/extern/qdune/slcompiler/qdslc.py
trunk/blender/extern/qdune/slcompiler/slcompile.py
trunk/blender/extern/qdune/slcompiler/slprocedures.py
trunk/blender/extern/qdune/svm/
trunk/blender/extern/qdune/svm/ImageTextures.cpp
trunk/blender/extern/qdune/svm/ImageTextures.h
trunk/blender/extern/qdune/svm/TexCache.cpp
trunk/blender/extern/qdune/svm/TexCache.h
trunk/blender/extern/qdune/svm/maketexture.cpp
trunk/blender/extern/qdune/svm/maketexture.h
trunk/blender/extern/qdune/svm/shaderVM.cpp
trunk/blender/extern/qdune/svm/shaderVM.h
trunk/blender/extern/qdune/svm/slshader.cpp
trunk/blender/extern/qdune/svm/slshader.h
Added: trunk/blender/extern/qdune/SConstruct
===================================================================
--- trunk/blender/extern/qdune/SConstruct (rev 0)
+++ trunk/blender/extern/qdune/SConstruct 2007-10-07 15:54:42 UTC (rev 12219)
@@ -0,0 +1,78 @@
+#-------------------------------------------------------------------------------------------------
+# Extremely simplistic scons script.
+# It uses only 2 basic scons functions, Split() & Program(), but it works
+# (but quite probably only for me, must be adapted to work properly on other systems as well...)
+#-------------------------------------------------------------------------------------------------
+
+debug = int(ARGUMENTS.get("debug", 0))
+no_cimg = int(ARGUMENTS.get("no_cimg", 0))
+profile = int(ARGUMENTS.get("profile", 0))
+
+# fast-math & omit-frame-pointer as well as athlon64 flags may be completely useless, since it is already compiled
+# for athlon64 by default, omit-frame-pointer is turned on by default with O3, and fast-math might not produce correct results either
+
+if debug:
+ # for gdb/valgrind, lflags as normal (note: don't use CImg in this case!, will detect lots of leaks in Xwin)
+ cppflags = Split("-Wall -g -O0 -fno-inline -I/usr/X11R6/include `pkg-config --cflags OpenEXR`")
+else:
+ cppflags = Split("-Wall -Wextra -Wno-unused -Wwrite-strings -O3 -march=athlon64 -ffast-math -I/usr/X11R6/include `pkg-config --cflags OpenEXR`")
+
+lflags = Split("-ljpeg `pkg-config --libs OpenEXR`")
+if profile:
+ # for profiling, add -pg to both cppflags and lflags (adding -g can be useful as well)
+ cppflags.append(Split("-pg -g"))
+ lflags.append("-pg")
+
+if not no_cimg:
+ # use CImg library
+ cppflags.append("-DWITH_CIMG")
+ lflags.extend(Split("-L/usr/X11R6/lib64 -lpthread -lX11 -lXext"))
+
+incfiles = Split("core framebuffer framework hider imgio mpgrid primitives qdtl ribparse svm")
+
+# main program
+src = ["qdrender.cpp"]
+
+# core directory
+src += ["core/Attributes.cpp", "core/Bound.cpp", "core/Camera.cpp", "core/Color.cpp",
+ "core/HierarchicalZbuffer.cpp", "core/Mathutil.cpp", "core/Noise.cpp",
+ "core/Options.cpp", "core/qdVector.cpp", "core/RenderBucket.cpp",
+ "core/State.cpp", "core/Transform.cpp"]
+
+# framebuffer director
+src += ["framebuffer/FrameBuffer.cpp"]
+
+# framework directory
+src += ["framework/HybridFramework.cpp", "framework/RayTraceFramework.cpp", "framework/ReyesFramework.cpp"]
+
+# hider directory
+src += ["hider/RayTraceHider.cpp", "hider/ZbufferHider.cpp"]
+
+# imgio directory
+src += ["imgio/exr_io.cpp", "imgio/jpeg_img.cpp"]
+
+# mpgrid directory
+src += ["mpgrid/MicroPolygon.cpp", "mpgrid/MicroPolygonGrid.cpp"]
+
+# primitives directory
+src += ["primitives/CCSubdivision.cpp", "primitives/Curves.cpp", "primitives/Nurbs.cpp",
+ "primitives/Parametric.cpp", "primitives/Patches.cpp", "primitives/Points.cpp",
+ "primitives/Polygons.cpp", "primitives/Primitive.cpp", "primitives/Quadrics.cpp"]
+
+# qdtl directory
+src += ["qdtl/qdtl.cpp"]
+
+# ribparse directory
+src += ["ribparse/decparam.cpp", "ribparse/ribInterface.cpp", "ribparse/RIB_parser.cpp", "ribparse/ri.cpp"]
+
+# svm directory (maketexture.cpp not here (yet) see comments for mktex program below)
+src += ["svm/ImageTextures.cpp", "svm/shaderVM.cpp", "svm/slshader.cpp", "svm/TexCache.cpp"]
+
+# Build main program
+Program('qdrender', source=src, CPPFLAGS=cppflags, CPPPATH=incfiles, LINKFLAGS=lflags)
+
+# build mktex program, must specify object files already compiled above instead of .cpp,
+# otherwise result is scons error "Two different sets of overrides were specified for the same target"
+mktex_src = ['mktex.cpp', 'imgio/exr_io.o', 'imgio/jpeg_img.o', 'svm/maketexture.cpp']
+mktex_lflags = Split("-ljpeg `pkg-config --libs OpenEXR`")
+Program('mktex', source=mktex_src, CPPFLAGS=cppflags, CPPPATH=incfiles, LINKFLAGS=mktex_lflags)
Added: trunk/blender/extern/qdune/ccdata50.dat
===================================================================
(Binary files differ)
Property changes on: trunk/blender/extern/qdune/ccdata50.dat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/blender/extern/qdune/ccdata50NT.dat
===================================================================
(Binary files differ)
Property changes on: trunk/blender/extern/qdune/ccdata50NT.dat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/blender/extern/qdune/core/Attributes.cpp
===================================================================
--- trunk/blender/extern/qdune/core/Attributes.cpp (rev 0)
+++ trunk/blender/extern/qdune/core/Attributes.cpp 2007-10-07 15:54:42 UTC (rev 12219)
@@ -0,0 +1,98 @@
+#include "Attributes.h"
+
+#include "slshader.h"
+#include <iostream>
+
+__BEGIN_QDRENDER
+
+//----------------------------------------------------------
+// Attributes
+
+// Attributes constructor
+Attributes::Attributes()
+{
+ // default flags:
+ // RiOrientation=OUTSIDE, RiSides=2, RiShadingInterpolation=CONSTANT, RiMatte=false
+ flags = 0;
+
+ // Shading
+ // RiColor & RiOpacity
+ color[0] = color[1] = color[2] = 1;
+ opacity[0] = opacity[1] = opacity[2] = 1;
+
+ // RiTextureCoordinates
+ // defaults: [(0, 0), (1, 0), (0, 1), (1, 1)]
+ texCoords[0] = texCoords[1] = texCoords[3] = texCoords[4] = 0.f;
+ texCoords[2] = texCoords[5] = texCoords[6] = texCoords[7] = 1.f;
+
+ // RiShadingRate
+ effectiveShadingRate = 1;
+
+ // array of all current active lightshaders
+ // NOTE: so, at some point I got an enormous amount of 'uninitialised value' error reports from valgrind, ordering me to 'fix my program!'...
+ // seemingly without any apparent reason whatsoever...
+ // After spending the whole day grasping at straws, it finally occured to me, padding!!!
+ // Valgrind was seeing some padding bytes as an uninitialized value or something. That was not quite the end of it though...
+ // In any case, this is why the padding variable itself also needs to be initialized as well... Something to remember...
+ numlights = pad0 = 0;
+ lightsources = NULL;
+
+ // shaders
+ surface_shader = NULL;
+ displacement_shader = NULL;
+ atmosphere_shader = NULL;
+ interior_shader = NULL;
+ exterior_shader = NULL;
+
+ // RiBasis (basis handled in state)
+ cubicBasisMatrix[0] = cubicBasisMatrix[1] = NULL;
+ cubicBasisStep[0] = cubicBasisStep[1] = RI_BEZIERSTEP;
+
+ // not yet used
+ /*
+ // RiBound
+ bound[0] = bound[2] = bound[4] = -RI_INFINITY;
+ bound[1] = bound[3] = bound[5] = RI_INFINITY;
+ // RiDetail
+ detail[0] = detail[2] = detail[4] = -RI_INFINITY;
+ detail[1] = detail[3] = detail[5] = RI_INFINITY;
+ // RiDetailRange
+ minVisible = lowerTransition = 0;
+ upperTransition = maxVisible = RI_INFINITY;
+ // RiGeometricApproximation
+ valueApproximation = 0; // "flatness" only
+ */
+
+ // optionals
+ displacementbound_sphere = 0;
+ // opacity threshold is minimum sum of opacity components to consider it opaque
+ // (now uses 1 as default. Can be annoying when for instance volume rendering with surface shaders,
+ // since to make that work properly, opacity would have to be set to less than 0.98,
+ // or this value itself must be reset)
+ opacity_threshold = 3.f;
+ // power of 2 grids
+ dice_binary = RI_FALSE;
+}
+
+// copy constructor
+Attributes::Attributes(const Attributes &attributes)
+{
+ // this is ok, all pointers are borrowed references
+ memcpy(this, &attributes, sizeof(Attributes));
+}
+
+// assignment operator
+Attributes& Attributes::operator=(const Attributes &attributes)
+{
+ // this is ok, all pointers are borrowed references
+ memcpy(this, &attributes, sizeof(Attributes));
+ return *this;
+}
+
+// Attributes destructor
+Attributes::~Attributes()
+{
+ // nothing to delete, all pointers are borrowed references
+}
+
+__END_QDRENDER
Added: trunk/blender/extern/qdune/core/Attributes.h
===================================================================
--- trunk/blender/extern/qdune/core/Attributes.h (rev 0)
+++ trunk/blender/extern/qdune/core/Attributes.h 2007-10-07 15:54:42 UTC (rev 12219)
@@ -0,0 +1,66 @@
+#ifndef ATTRIBUTES_H
+#define ATTRIBUTES_H
+
+#include "ri.h"
+
+#include "QDRender.h"
+__BEGIN_QDRENDER
+
+class SlShaderInstance;
+class Transform;
+
+// attribute flag bits
+enum atFlagBits {AF_SMOOTH=1, AF_MATTE=2, AF_SIDES1=4, AF_ORIENTATION=8};
+typedef int atFlags;
+
+class Attributes
+{
+public:
+ Attributes();
+ Attributes(const Attributes &attributes);
+ ~Attributes();
+ Attributes &operator=(const Attributes &attributes);
+
+ // attribute flags for RiShadingInterpolation, RiMatte,
+ // RiOrientation/RiReverseOrientation and RiSides
+ atFlags flags;
+
+ // Shading
+ RtColor color, opacity; // RiColor & RiOpacity
+ RtFloat texCoords[8]; // RiTextureCoordinates
+
+ // shading general
+ RtFloat effectiveShadingRate; // RiShadingRate
+
+ // array of all current active lightsources, borrowed reference, do not delete!
+ SlShaderInstance** lightsources;
+ unsigned int numlights, pad0;
+
+ // Shaders, borrowed references, do not delete!
+ SlShaderInstance* surface_shader;
+ SlShaderInstance* displacement_shader;
+ SlShaderInstance* atmosphere_shader;
+ SlShaderInstance* interior_shader;
+ SlShaderInstance* exterior_shader;
+
+ // Geometry
+ /*
+ RtBound bound; // RiBound
+ RtBound detail; // RiDetail
+ RtFloat minVisible, lowerTransition, // RiDetailRange
+ upperTransition, maxVisible;
+ RtFloat valueApproximation; // RiGeometricApproximation (flatnesss)
+ */
+ Transform* cubicBasisMatrix[2]; // RiBasis, borrowed references, do not delete!
+ RtInt cubicBasisStep[2];
+ //trimCurveList; TODO, or not...
+
+ // optional attributes
+ RtFloat displacementbound_sphere;
+ RtFloat opacity_threshold;
+ RtBoolean dice_binary;
+};
+
+__END_QDRENDER
+
+#endif // ATTRIBUTES
Added: trunk/blender/extern/qdune/core/Bound.cpp
===================================================================
--- trunk/blender/extern/qdune/core/Bound.cpp (rev 0)
+++ trunk/blender/extern/qdune/core/Bound.cpp 2007-10-07 15:54:42 UTC (rev 12219)
@@ -0,0 +1,94 @@
+#include "Bound.h"
+#include "Transform.h"
+
+#include "QDRender.h"
+__BEGIN_QDRENDER
+
+void Bound::transform(const Transform* m)
+{
+ // from Graphic Gems I, by Jim Arvo
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list