[Bf-committers] Renderman patch

Ton Roosendaal bf-committers@blender.org
Mon, 19 Apr 2004 22:28:41 +0200


--Apple-Mail-10-1020106291
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=US-ASCII;
	format=flowed

Hi all,

Below instructions and code as received in today. Apparently the 
developer didn't yet choose to go for the yafray route (render faces), 
but he notes it might be interesting to check out later on.

I'd like to get some feedback on it!

Thanks,

-Ton-

--------------------------------------------------------

Here is the source code for the RenderMan export (so far). Find 
attached the files needed plus two light source shaders which have to 
be compiled for the RenderMan compliant renderer you are using. Its 
tested with 3Delight and AIR.

Here a few things:

1. The YFexport path is used for RenderMan as well. So don't forget to 
set it ...

2. Meshes do not take normals into account (yet)

3. If meshes have the Subdivision Surface button pressed they are 
exported as (catmull-clark) subdivision surfaces.

4. NURBS surfaces are exported but not NURBS curves

5. If there are no lights in the scene (or the lights are of type 
"Area", "Sun", or "Hemi") I use the defaultsurface shader which comes 
with every RenderMan compatible renderer to render without lights.

6. If the light type is "Lamp" no shadows are generated anyway.

7. If the light type is "Spot" the rendering of (raytraced) shadows is 
dependend on the "Shadow" button in the Render tab. If pressed the spot 
lights cast shadows, if not, no shadows are calculated ...

8. The render resolution should be taken into account correctly (e.g. 
50%)

9. The used renderer is hard-coded at the moment. I have to change 
that. A user setting would be appreciated ...

I have a Python version which can render meshes with several materials, 
with vertex colors, and with proper normals. This is the next step but 
I might have a few questions for you before I implement this features. 
Another thing is the usage of lattices etc. because I might go down the 
YafRay route for that (taking the "struct RE_Render R" into account 
instead of getting the scene from "extern Global G"). Anyway, here it 
is. Let me know what the people are thinking about it etc. ...

I made the following changes (find the renderman subdirectory and files 
in the ZIP file attached):

diff ./source/blender/makesdna/DNA_scene_types.h.org 
./source/blender/makesdna/DNA_scene_types.h
301a302,303
 > #define R_RENDERMAN   2
 > #define R_MENTALRAY   3

diff ./source/blender/render/intern/source/initrender.c.org 
./source/blender/render/intern/source/initrender.c
106a107,109
 > /* RenderMan */
 > #include "RenderMan_Api.h"
 >
760a764,771
 > /* RenderMan */
 > void rendermanRender()
 > {
 >   R.flag |= R_RENDERING; /* !!! */
 >   prepareScene();
 >   RMAN_exportScene();
 >   finalizeScene();
 > }
766a778,787
 >       else if (R.r.renderer==R_RENDERMAN)
 >         {
 >           /* TODO */
 >           rendermanRender();
 >         }
 >       else if (R.r.renderer==R_MENTALRAY)
 >         {
 >           /* TODO */
 >           printf("rendering with mental ray is not implemented yet 
...\n");
 >         }

diff ./source/blender/render/SConscript.org 
./source/blender/render/SConscript
39c39,40
<                               '../yafray'])
---
 >                               '../yafray',
 >                               '../renderman'])

diff ./source/blender/src/buttons_scene.c.org 
./source/blender/src/buttons_scene.c
1027c1027
<       uiDefButS(block, MENU, B_REDR, "Rendering Engine %t|Blender 
Internal %x0|YafRay %x1",
---
 >       uiDefButS(block, MENU, B_REDR, "Rendering Engine %t|Blender 
Internal %x0|YafRay %x1|RenderMan%x2|Mental Ray%x3",

diff ./source/blender/SConscript.org ./source/blender/SConscript
18a19
 >             'renderman/SConscript',

diff ./SConstruct.org ./SConstruct
42c42
<     debug_flags = ['-O2', '-g']
---
 >     debug_flags = ['-g']
851a852
 >               'blender_renderman',



--Apple-Mail-10-1020106291
Content-Disposition: attachment;
	filename=shaders.zip
Content-Transfer-Encoding: base64
Content-Type: application/zip;
	x-mac-creator=53495421;
	x-unix-mode=0755;
	x-mac-type=5A495020;
	name="shaders.zip"

UEsDBBQAAAAAAHWykzAAAAAAAAAAAAAAAAAIAAAAc2hhZGVycy9QSwMEFAAAAAgAa7KTMKEUb02h
AAAABgEAABwAAABzaGFkZXJzL2JsZW5kZXJwb2ludGxpZ2h0LnNsTY/BDoIwEETP7FdMOLVoFL0a
T179CZQCTUpr6HowhH93aRMlaTbdt53ZKZGz/cCghzO+NdMrWM8Jqc6FhiGt8dHyB1ecLlQUQB60
NrKwc32oM34GFyYkbb7+BMkU3RRGYbkp49DIuhKq3mM9Oj/VNBNgnXuP1jdsoFaZhkBgThW4OfH5
B6ugUpgjlHyi50HdNXYpoBbbjUZKtUmYZgst9AVQSwMEFAAAAAgAdbKTMOqQflWCAQAAiQMAABsA
AABzaGFkZXJzL2JsZW5kZXJzcG90bGlnaHQuc2x1U02PgjAQPUPCf5j1YFrWD9Aj68Hs1T+BWLRJ
bQ2tm2yM/32nUwqYuAnQMvPezHvTNEuzVMnzxUGWHpXQJ9HZm3EUYq0ytQOpndBWul/YQVllaZJA
SJykdRjbFKsihBujTAfEDduBcDNYBdrOXDEWfmb2UmO3GbBiAf7hU6gzAP9CSz6V0Rgtan1WAvFd
fZK1tmxbvEC8JXKHkEEtz9JHlgLctWxNd4Uf0TjUvEcMw/ZLksthDUg8u8skVnmaf6VS96vUtRPA
fGYB+8WohxMG4BEWgDjPm5/MHlbADmP5Aw91R6BXbSVCG2PZWPUN6qi86HJVoMLA4pCPrpERObIF
RgK+IhBngQITiLrKMJ9nZAhlxYDpHfhjJ3hsV02zPunQWOj/kqIcSnshWNP6gmyL+nOPWcImbvHD
A5aUu143Gp7P4+6DDpUTiqad9F69wnxH9as++qS19/QGPviP4Oc4u28VbeeTS5EDo4uwBjacJHzS
5ZicKHHxk0+uR5/EDvj8AVBLAQIUAxQAAAAAAHWykzAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAEADt
QQAAAABzaGFkZXJzL1BLAQIUAxQAAAAIAGuykzChFG9NoQAAAAYBAAAcAAAAAAAAAAAAAACkgSYA
AABzaGFkZXJzL2JsZW5kZXJwb2ludGxpZ2h0LnNsUEsBAhQDFAAAAAgAdbKTMOqQflWCAQAAiQMA
ABsAAAAAAAAAAAAAAKSBAQEAAHNoYWRlcnMvYmxlbmRlcnNwb3RsaWdodC5zbFBLBQYAAAAAAwAD
AMkAAAC8AgAAAAA=

--Apple-Mail-10-1020106291
Content-Disposition: attachment;
	filename=renderman.zip
Content-Transfer-Encoding: base64
Content-Type: application/zip;
	x-mac-creator=53495421;
	x-unix-mode=0755;
	x-mac-type=5A495020;
	name="renderman.zip"

UEsDBBQAAAAAAAOzkzAAAAAAAAAAAAAAAAAKAAAAcmVuZGVybWFuL1BLAwQUAAAACAAMspMwHnXK
eR8BAAAEGAAAEwAAAHJlbmRlcm1hbi8uRFNfU3RvcmXtmEFKw0AUhv8XgwRddDaCyzmB4A3Gti5c
CGIPoDYtGChJsXWfI3hUb6Azmb/aJgp2VbXvg+EbmPdnJllkMgEg/efJOWAAZIiW0PmCjK1DQqch
3FzjCeXVrMrHs2qMv0FY+yEKlFhi2lp/eCg3vp28NTT1G7VFvpizdv0B9XDrx0tMmqprPPj+HS4w
99kzPLZmeG3NcIQRBqh8ZoHc5wufW25m5KWVURRFUZSfI1HZ8W6XoSjKLyS8Hyzt6DpaOJ7Q6VrG
0JZ2dB0trEvolM5oQ1va0XU0X1rCw4dw5tXhRQxtabfVLSvK3nAQZcL+f/n9+V9RlH+MpMPRsI+P
A0GHsNda3+5XAXA3R/cjIIn/wk7xOW5pR9fR+iGgKLviHVBLAwQUAAAAAADzspMwAAAAAAAAAAAA
AAAAEQAAAHJlbmRlcm1hbi9pbnRlcm4vUEsDBBQAAAAIAAyykzDsJ8ZD6QAAAAQYAAAaAAAAcmVu
ZGVybWFuL2ludGVybi8uRFNfU3RvcmXtmL1qwzAUhc91PRiyaCl01BME+gYiJEO2QF+g+fGWJhDI
7inPlTdr5d7TpsUJJJNDez64fIN1ZHmRdA3ARvvVMxAAVHDjgLNUrA4FbV55jho7vGGODYa4jjY7
yKk6Z1a/8svpertcrLcLLm+W6/H9kyvnFkIIIUQXc1WDfpchhLhD2v0h0olu3MbnBV3+yAQ60olu
3MZxBV3SFR3oSCe6cXPTMjYfxjcbOxQLdKTTTZ8sxL/hwRXa83+Ci/2/EOIPY+X4ZTzCd0PQoT1r
Y65Xjjl+BS9cBAr/YfiE07hIJ7px6zIgRB98AFBLAwQUAAAACADzspMwnFMotkEOAAAPPwAAHAAA
AHJlbmRlcm1hbi9pbnRlcm4vcmVuZGVybWFuLmPtW21z2kgS/ox/RR9byYKNsQXZXJ3ZpAo72KHW
LxTYm0rZlEuIEegiJFZvNpfKf7/umZE0Akl4E+9lqy4u26Dpnu5nerp7ekbSwS7s0g8c9876l3A2
OIfz/knvctSD4/Ork98EdQfoF67nlg9Lz515+gLwq+kxBr5rBg+6xzqwckMwdAc8NrX8wLMmYcDA
CkB3pgeuRwIW7tQyV9QWOlPmQTBnEDBv4YNr8ouzyxs4Yw7zdBsG4cS2DDi3DOb4jLrrqJ0a/Tmb
wmTFe5wShpHEAKcuCtYDy3U6wCykexAxz8draJEEqUbKbIDrQU0PCLkH7pL61RHuCmw9SLs2oWD8
6TCnYDlc8txd4pDmKBMH+WDZNkwYhD4zQ7tBIpAZPvSv31/dXEP38iN86A6H3cvrjx1kDuYuUlnE
hChrsbQtlIwD83QnWCF4knDRG568xy7d4/55//ojDeG0f33ZG43g9GoIXRh0h9f9k5vz7hAGN8PB
1ajXBBgxgsWtWGxjMFHYwkU7TlmgW7bflAP/iDPrIzp7CnM9YjjDBrMixKaD4S5XT5w923VmfJjI
nBqyA5YJjhs04MGz0GECt3ReuRX7jtFswC//gmuGRmIwsHWDwT6MQpLQbh824Nj1A+SGiy7AYUvT
tH2tffjPBtyMunJUJEj4fu/yXYnnH+zAzk+WY9jhlMGvCz2YN+dvlRY/mFruepNnObMNNtuaUNvO
wS7Ezcc245HgB6Fpkq6kQ/X4t979RJ/e2+gR9r2h2zgf8ypgZ/aI3ulgHy80Ahj27odCyLCzKWFm
uxPdznY8421wlsO+0C1HMgerJZsyM1ZzgZQ1/vP+/QTx82FVFcK7yy7iXaAf3JMQP4caehErItr6
YllEWzB/XkZDJylU6k7+zYygiOqjoxZCwgj20BZF5AfXs6d5xIvrEzQpesOju+QkmntKSwzIrYMH
V5rXR4/AuWF+gI5DMWA5EV3MdMqhIiFM2SSczShtujsA4GOAPMz14GcfZi71cp2jHJ+g9Ls+8TSP
hMR23U+kWISc6dq2+0CSTMtm/hFxIVPzwHdDz2AHE+GrB574EDIP5Fhla2yEor70+Qm7MftA9U4O
aCdyrenO8KJ7ec8el64XjGhKavWdzzjc0/55bxfMZQe/I2Kw4i9hA6IGfpuyx6RpoT9iK/6PW5xw
cW7N5mjmN3BIjcZc9/gwHfTT29Yvr8dJq+EuFmiz21+0Fm80bVcPADn9BpooSpssnNnbV2P8Vdh0
P/iNZzOHPdCXlGR67uJ3ZrzK8Aeu0sQT5OOQoaIV/qemEx5GuyDCibdQ6GADfdD1OUYLziT+p6sL
jIFdoEjgV6e6gbwLEz/49e/MC/A6wg+6vgy9yS4ax5vQ1RWPj10QcdLZwaalh9Yza9XNSblzqnXO
grNszJnxidK48GzLBx2mlodCXG+FfhrEHkxhhG5s6qGNU1HDS/iom0N99bNf54mWhNTQh9HatZvm
yhQqUVYd3uDM1cnv4TP/n4LrDYdXwyNwXBDsm7ozegVyEvCFwG/RKGAxm9YwRTf1+gclQPZo+YG/
1rW+U/m8U9lAmOJ64cPUZT6teyAkIKoGZKV0dioJwhJdAiH9cJRCM3Zzl8zBiSAnB1o9qGYSUdj0
rImYEl7ExKBQjoKZulMueEGpCf9zgFVFQh5erjgnYR6J0FK4b7XXh+OO1OlLpXFAoqIX/gt/XcOa
fqFwEy9HGosSTOYSA98kFlXHgxRBBjaXdfpKM1wR1jRjUEtk/QmG/ePYv6hMkgu3cKa8Hu8sf2nr
K7hLMAeWad5VsYEg8C/ebKLfVTMyCMtZky9G8PIlyK/7b0UCyGnaf0trHoKniUchkvEN1GTuqOf3
6HBunK6fcJ4s1HbSvbgf9IajQaVyyOdlk3w1vH5/ValoChl9Y3O5j+k0mFgnkeq8ldu4ko3h66t3
V0exffFvTrXhcm4ZcjzSRpVM2GZExzpFEKypwQ5Cg2FbSz/QG/wLTkvci34oxaPdYql02VElpJlZ
7UWt2GvY9JqPvjFPe6xSwipDyLjJqest9ABe2FPxd8a9N1XVAK15WM/gMN1IBUCXbwBn1KnVqMdB
rcbXljoJqdd3tdcHNBQ0ELRfHzYPTTgAnOl+LiBsk43VgefSOkB7p7vqknn+kq4i4bmoFD9vES+M
CXHaDylZuFTJeD4DUQepyKk6utCDV33iCGq0njY2ndWdYHu9wHzXnu74GI8LxHLnIJr4l4MSHaCS
/8nX78Mx/jaS7xp+348vWgqhPS6CsK40sQTvqinyNVW+psjXvl5+S5HfUuW3FPmtJ8pHE45zdLQV
HW1VR1vR0S7T8YEK5GM2sxw1kEHsSXjM26I8y/i1BzVRi1A2k9UJZTPapJBfUEPTtDw/6EjEsnSB
nG6iaf+tNW067DGgVMQzpkhjqnqZuOIOlF2oFrg6vj/vXgzqsXE+p1ai6ouU8VosVRWn2fwFRS5U
Ki65XsUd/AcrMOZQI/FpApWwK4aOQXXevT+/OumeH23xdfpMCtDDMZXBzUOT61IpWiGlVUhpE0VT
KHFYX4Q2MZh2Ykoeyo2kaz3ugRPgz/Wp+0AHQaachcqaxbpBfKZ0V+XTdVeFaiIiw3pXFTvwWGox
5y0Kc/myPI49c4MHgO8dRnwnU6xSLvNLFxtjfC+mIKKJ+JNNyN5ekQzDtdHreW/+tQx4ErRjRYdw
Fa8hv8ziL5MijRwun5E4n28KVR3nQJ34TQ5tK0drjaMImNxjOQFzfCtYJavNxmDpwGm2KhdDJ3Ub
61UqgsiJgInH9E+dnUyMjW4ujyQ5rlg+dIeX/cuzI2WCYhJPBzxt4PxTie+HS0pybAq1FQvqCgAl
tEv1D66u/04hLretG1pku1bQzjXs5wh6hhyytYdQlZtznIO/Pu3QkkK14MKdMngJw/vR++67qw91
SZbrSd5SwXOUs56ilDo4T2w6GlkQP0XJZiKUWkgG3BbpGheY7s8lTn/p/sib3543BbDALYaVBu9B
Gn/rVK2U2spQ//cpHEozeG5/w3WY7sz4zrtACHmgb/2H4dj4TonuttwP+uVyqRP34JL1JeEpTfLv
exf977rKdIe97ncBII/mCnXzgypxA8r5OYC5vlwyR01TUhhdfNlZT49FhbzMWl/Enrp8s9FsNuuZ
zUk2z/WnzAnIxTO7G1KeJC91w7G2E5DDR/t5dFKbDGxDzUgw0H6cDpotIzk8EuNe31TNmLtggTza
+x7bKjqIZlu3VRe90fu8bRX1JmX8UPv5tlVrRk0W+Mz+NLWlp68CTzdoXY/HkSNFkYPTE1m+NbFs
kfSqhcrvqgGdXywsn+4z84MVd6n/ETJlXhMcQXzUwe+DZo5TiiBlT0eqJUYAyDlmkKyZOkoemJSR
tXJyq5wcLyffCFMrh6mVw9TKYWrPBrNVDrNVDrNVDrP1bDDb5TDb5TDb5TDbW2GOy5w3CXlKF7kB
T2lHEE1bn8FLuOjdj26ORzfDU/VAJUfxKJxMLQpm16EkVFzDGnqwCG1737B17xOvBGLWZBkqQpAJ
4aRYL4Q0oPrOH7j2auY6/rqitFAvUjfO6OO3BnmO5bcK69KI8o5hJbNoWPzmKVjwq+QK3IDzgbW3
lzUkAahxIXtWff9t9Cp/m4OA/wj1abp92JjcV5C748nKzu51NhjahcoDz+IlYQmANuRvhjaVxELS
eqLcYMWpe5zO6nc2/4spJL9pUUs/qnitkNIqpLQLKa++74T/VeP9Dl50Vx2oqUhGPN1r4RHPHwZI
Il48E7Dd5Tjfpsvl31JIbVjjCvgoDTdZTDYIWhGhNVbTXIqusTmgtFbPNUt5IZRUcT1nmuEs207w
AjZRmcxsDmey5iTOKVDwxzn4TVv+eMePYvdHsfsnYP4odv/vil2eMPIjnnIjPdNF6YQ/4VWPualV
2dlTB/7wF0h2+kCueB+fqScELU5lJzf3lzfD41HhSuuEELoePYGYWWpTSVSZhvASNCFC6sqreC/D
gU73QcWyfJssKhWQgJdO4Id74jvXGe5r6zyiXa4haVG+jiWLNqnGvxldoxhGWrKvgxln0SBv+InO
2bLFS7pQJ7UHLdg1RTvs5aonzngdLxghX8NlZ9Lth7fWOAN/vVBQVt+nzznK4Wd69ES5yR6Aq4ql
VCB5rDLx0RjLvjZOBrOOJOsQSs2i+KuEKB/WpIhJVO3JeaxkVWp71hj282mpaXJCV5pSaMryqcOL
HxtNyFut/FRvJv9Z0NOQC/3x26JyvFbeJb4u7ZC1/LiUSzpoYlA5IYoExdriRxs/cxw/+3jGXx3h
TgTR1rwZbZ2h0mwUqbkyKsiVUYmNo6+wcTmiRrHqPOtFBdaLvio/Rtn8GH1Lfoy+NT9Gz5cfoyfn
x+i58mNUkh+jv1F+jPLzY0T5MdqSH7dHX3k+iW6zlh+XckkHLc6P0Z/Lj18Tu88+nq/Pj4brBJ5r
A7/N7Zec49xVBw+Zg9htSx1fFt9AcdkE+6B1cq222bXzJO+J1vutZ6JilZtdO+tJLxLhEGE48Hdh
IEoCnNNDQQ+RHnJ6qCQAJfz5uzUU+ijxhaoRvWhHcby89ZwTUJPaL6yr0V34LKribLHsyfKWgxk3
I2bQAwy7W1ja421CtOcQ0noOIW0lOX4p8uqiR4AKdmdPeApo42a72GAq6bdq6OKuuzO1GSia+F3+
kmeFCkCNN88487arW87xth3VbT2Fe7bb//zhZgVDjiUybyrI8SdzV/66R6JaajZs12f0ukpnJ82K
4uU7hS1+o0a+zIYoBcvUhv0p8Fdrsm/I8E4rP2CLuE/cnuBEnVKDcCbpSVk3kq86CZfhryDlvpCz
YSEULuyy1l7y4tM4fvNprUvJ21y8C2fffKONSP8FUEsDBBQAAAAIAAOzkzBzzMSPIQIAAN4DAAAZ
AAAAcmVuZGVybWFuL1JlbmRlck1hbl9BcGkuaI2SQW+bQBCF7/yKp+aSRI4dJ6qqyifsYgfVwQiw
Ip+sNQxhpTWLlsWJVfW/dxY7yiWJikDA7sy3783M6BrX7sI0WIQRFvESy3AWRGmA6XI1+33a9eBu
ZJVs0Rj9bMQe/FkaIrS6tC/C0ARH3SEXNQwVsrVG7jpLkBaiLkbaOMBeF7I8urWuLsjAVgRLZt9C
l/3PIlpjQTUZoRB3OyVzLGVOdUsuXfDpbrGtqMDu2GfMnYb0rAFzzWBhpa4nIMn7BgcyLf/jzhHO
x5yZA2iDS2GdcgPduLwrlnuEEvY9dYhP/L/bLCDrnlzphi1VzGSTL1Ip7AhdS2WnBg7BwXgKs4fV
OoMfbfDkJ4kfZZsJB9tK8y4d6ISS+0ZJJrMxI2p7ZPGO8BgkswdO8afhMsw2zsI8zKIgTTFfJfAR
+0kWztZLP0G8TuJVGgyBlJysvoqf1xglw/aa61iQFVK1w7PxDXe2ZXWqQCUOxB3OSR5Ym0Cum+N/
dk/p+rm3ycHvhZxAlqi1HeDFSB4Yq7/sa1/FsM6HA3z/iYy4SIRYiZxwg7RzhPv72wGmurUcjUcf
uL0bj8c34/vbHwOsU//syoFOsx9Ev76Y/JHnXciS57XEdptwbJA8+tHWj8Ptg3fBy7KmD3a80TVm
PBY8SKVT52o7VdTPPTMZeSLmjepa93j0yrE1vs2+4Y93wZGSG+4I6LH02mhjU64nXV5NPgL8fct6
e/8DUEsDBBQAAAAIAEiDiDAjgL9x6wAAABkCAAAUAAAAcmVuZGVybWFuL1NDb25zY3JpcHSNUctq
wzAQvPsrBDmsQ4L0BT6kySGGHExpT8EI2doEEVkSepTm76vabQgJBOum3ZlhdqYenPWRlJACem5d
VNYELlUfYVnU/0utOi/8laP5yuPCo5HoB2F+B6Qid2u6te5KygwKNvke+UlpDBlzBGUiesNuZNpD
+6BFN87lPym3TdNsPvYjb8H+mOckvEQptLY9rAvy8gGlrNNosrdZ2EFcMEgjZgtfsiXUs+Bq6NJp
FnJKg+H3eLAyvU4SoX3MnB6mxEkZhT9jrGABq6cGj/D2WR92fFe/Q7sClqMYnWcdfpODNZmaqu4L
WxY/UEsBAhQDFAAAAAAAA7OTMAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAQAO1BAAAAAHJlbmRlcm1h
bi9QSwECFAMUAAAACAAMspMwHnXKeR8BAAAEGAAAEwAAAAAAAAAAAAAA7YEoAAAAcmVuZGVybWFu
Ly5EU19TdG9yZVBLAQIUAxQAAAAIAAOzkzBzzMSPIQIAAN4DAAAZAAAAAAAAAAAAAACkgUMRAABy
ZW5kZXJtYW4vUmVuZGVyTWFuX0FwaS5oUEsBAhQDFAAAAAgASIOIMCOAv3HrAAAAGQIAABQAAAAA
AAAAAAAAAKSBmxMAAHJlbmRlcm1hbi9TQ29uc2NyaXB0UEsBAhQDFAAAAAAA87KTMAAAAAAAAAAA
AAAAABEAAAAAAAAAAAAQAO1BeAEAAHJlbmRlcm1hbi9pbnRlcm4vUEsBAhQDFAAAAAgADLKTMOwn
xkPpAAAABBgAABoAAAAAAAAAAAAAAO2BpwEAAHJlbmRlcm1hbi9pbnRlcm4vLkRTX1N0b3JlUEsB
AhQDFAAAAAgA87KTMJxTKLZBDgAADz8AABwAAAAAAAAAAAAAAKSByAIAAHJlbmRlcm1hbi9pbnRl
cm4vcmVuZGVybWFuLmNQSwUGAAAAAAcABwDTAQAAuBQAAAAA

--Apple-Mail-10-1020106291
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	delsp=yes;
	charset=US-ASCII;
	format=flowed



------------------------------------------------------------------------ 
--
Ton Roosendaal  Blender Foundation ton@blender.org  
http://www.blender.org
--Apple-Mail-10-1020106291--