Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raytracer Assignment #19

Open
wants to merge 175 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
175 commits
Select commit Hold shift + click to select a range
59d0722
Updated README!
Sep 12, 2013
c3a5509
Added licensing stuff.
Sep 12, 2013
970e6f8
Edited readme a little bit.
Sep 12, 2013
281f0e7
Added sample scene file!
Sep 16, 2013
d00f5ef
Added the raycast function. It compiles. Now to test to see if it wo…
Sep 16, 2013
b8c2749
Testing the code for raycast. So far... we get... BLACK!!! ARGH!!!
Sep 16, 2013
f146482
Got the raycast to display something. I don't think it does what I wa…
Sep 16, 2013
7c203fc
Okay, it does what we want. I think we would fare better with a diffe…
Sep 16, 2013
4ac630b
We can now draw three beautfil spheres! w00t!
Sep 16, 2013
3348c09
Got a good "distance" trace on the spheres.
Sep 16, 2013
13696f5
Plugged in the ray-cube intersection test. Hopefully it works.
Sep 16, 2013
13c150e
Got the box intersection close to working, but no dice?
Sep 16, 2013
e4e52fc
3 sphere in a Cornell box. Hell yeah.
Sep 16, 2013
6f7a2d4
Consolidated intersection test to its own function.
Sep 16, 2013
331b014
Now I've passed lights and materials to CUDA. Time to do an actual li…
Sep 16, 2013
1c12f1d
Well, the revised hitSomething() test does **something** though its t…
Sep 16, 2013
48955d2
Now the raytracer works but with a bunch of stuff commented out...
Sep 16, 2013
35af983
Revert "Now the raytracer works but with a bunch of stuff commented o…
Sep 16, 2013
bef85f5
Back to where we were before. It works, but with a bunch of stuff com…
Sep 16, 2013
d734a27
Back to the basics. We aren't going to be storing our intersection da…
Sep 16, 2013
5b919ec
Got the depth sort working, ***I THINK***. Now, on to diffuse shading!
Sep 16, 2013
5fdc5db
Put in a diffuse function calc, not implemented yet...
Sep 16, 2013
e892292
Packaged the lights properly. Freed cudaLights and cudaMats in order …
Sep 16, 2013
becb35e
Diffuse with black and white lighting works!
Sep 16, 2013
bc61c77
DIFFUSE LIGHTING + COLOR WORKS!!! FUCK YEAHH!!!
Sep 16, 2013
912a272
Got the light in front of the rest of the geometry. Now the mystery i…
Sep 20, 2013
2d98238
Got the light to appear to be white (we just take the pure color when…
Sep 20, 2013
b702175
Replaced all the scene geometry with normals. Clearly the problem isn…
Sep 20, 2013
2504a5c
Allright. We now know that the problem is the normals are wrong - per…
Sep 20, 2013
83d12d3
Well, I attempted to get the raytracer to produce the correct normals…
Sep 20, 2013
a1f6376
Getting closer to an answer... the problem is that localInterPt is no…
Sep 20, 2013
441b23f
Almost there. I think the normals are correct now, but our epsilon is…
Sep 20, 2013
eb1d389
Allright! The normals are correct. Now it's time to move on, finally.
Sep 20, 2013
78904ea
No longer upside down! Hooray!
Sep 20, 2013
3c49506
Cleaned up the
Sep 20, 2013
6ec9b0b
Added the specular term calculation function. Haven't tested it yet!
Sep 20, 2013
7c9b08c
Refactored some of the code for calculating diffuse so that it's easi…
Sep 20, 2013
00589e3
Got specular working, though the highlight doesn't seem to be in the …
Sep 20, 2013
3809a02
Specular lighting now works correctly.
Sep 20, 2013
030f137
Refactored code so that calculation for reflected ray is its own func…
Sep 20, 2013
70a9ee7
Got shadows working, but there are random artifacts, I believe due to…
Sep 20, 2013
4e31c80
Now shadows work without weird artifacts. Yayness!
Sep 20, 2013
aa01bc3
We can spit out random numbers! And it even looks like it works!
Sep 20, 2013
9260eb2
Sphere sampling working. Added text files, images as results.
Sep 21, 2013
204550c
Got the camera to move left. Artifacts are due to the fact (I think) …
Sep 21, 2013
a723183
Basic camera controls work (position). Now we need to add view controls!
Sep 21, 2013
cb31c4e
Got the code down for reflection. Without any reflective objects... a…
Sep 21, 2013
2f022f2
Reflection working (at least with one bounce)
Sep 21, 2013
44ec650
Recursion more or less works. Yippee!!
Sep 21, 2013
b35dbee
We can now detect mouse clicks!
Sep 21, 2013
7394d4c
Got all of the basic setup done for mouse click + mouse motion. Now w…
Sep 21, 2013
2c0b6c7
Interactive camera almost works!
Sep 21, 2013
0d653ae
Interactive camera works, but is inverted.
Sep 21, 2013
649d693
Now we fixed the issue with not all of the pixels being black when it…
Sep 21, 2013
0a3940c
Arcball camera fixed (rotates the up vector now). Now time to make th…
Sep 21, 2013
ff74d3f
Now the camera has WASD controls relative to the camera. YAY!
Sep 21, 2013
7a5f22a
Now the FPS counter is working.
Sep 21, 2013
63e431c
Project done!!
Sep 21, 2013
9d7d652
Added the rest of the stuff.
Sep 21, 2013
1b54980
Moved our first helper function into a separate file.
Sep 21, 2013
47d5dd1
Grouped a bunch of the helper functions into raytraceHelpers.h
Sep 21, 2013
e8292d4
Moved the function to calculate the reflected direction to interactio…
Sep 21, 2013
8616017
Now we put the sphere sampling the correct place (and tests confirm t…
Sep 21, 2013
afbe912
Cleaned up the code where I passed the camera position/rotation/view …
Sep 22, 2013
eb7a04b
Now we iterate through all emitters rather than interate through all …
Sep 22, 2013
f650159
Edited makefile so I don't export the enivronment variable in my .bas…
Sep 23, 2013
78bf5a2
Changed makefile back. We can't actually set environment variables in…
Sep 23, 2013
bd7a9e0
Revert "Now the raytracer works but with a bunch of stuff commented o…
Sep 23, 2013
4aaf9b7
Upgraded to compute version 2.1 (the highest that my HW supports). Al…
Sep 27, 2013
721199c
We can allocate and free the ray buffers WITHOUT CRASHING! Yayness!
Sep 28, 2013
b7d1f72
Added code for calcuating the screen rays to initialize the ray buffe…
Sep 28, 2013
0937252
Close, but no banana. The kernel for casting all rays per-pixel in ad…
Sep 28, 2013
0e49f65
Well, now we initialize one of the arrays correctly. Time to raytrace…
Sep 29, 2013
1ba7fde
Removed the loop in the raytrace logic so that we can test reading fr…
Sep 29, 2013
c982368
Allright, now we have the rays working from a single array. Cleaned u…
Sep 29, 2013
f683b41
Now we free array A...
Sep 29, 2013
4d61c3b
Now we mark finished rays as finished! A small change, admittedly.
Sep 29, 2013
6cdc6ab
Single bounce working, when parallelizing along ray...
Sep 29, 2013
47f2c49
Now we have the same functionality as before, with REALLY STUPID para…
Sep 29, 2013
f85c56d
Now we have a separate pixel index from the ray index... hopefully th…
Sep 29, 2013
457377e
Trying to schedule kernel over rays with 1D block size. So far it ai…
Sep 29, 2013
fb644ec
NOW we have the 1D block size thingie for the rays ACTUALLY WORKING. …
Sep 29, 2013
e62157f
Got the STUPID stream compaction working. It's faster than if we don'…
Sep 29, 2013
16c5bc8
We are referring to ray buffers A and B as rayBuffers[0] and rayBuffe…
Sep 30, 2013
62d0e68
Now we have isFinishedBuf as a device_vector<int>. Yippee!
Sep 30, 2013
c0a198c
Now casting the isFinished buffer to a pointer works. Time to see if …
Sep 30, 2013
1d4e5d0
Our reduce wrapper DOESN'T CRASH!!! WHEEE!!!!
Sep 30, 2013
69f9d74
I think that the reduction example works now. By God!
Sep 30, 2013
12367d2
finalScatterCore isn't crashing... that's good at least!
Sep 30, 2013
86ba560
ZOMG IT WORKS!!! STREAM COMPACTION IN ALL ITS GLORY!!!
Sep 30, 2013
fff23dc
Um... just committing again... to be safe!
Sep 30, 2013
cf4b6db
Well, added better method for writing pixels to screen. But for some …
Sep 30, 2013
0592e01
NAO MY OWN COPY FUNCTION WORKS!!! YAY!!!
Sep 30, 2013
9a230d6
Now we are looping until the number of active rays is zero rather tha…
Oct 1, 2013
5efa30c
Now the color blows out, as expected.
Oct 1, 2013
79ae76a
Got the image to stop blowing out partially working. It's still blowi…
Oct 1, 2013
10d6d88
The extra red is gone, although we're still getting a "fade-in" effec…
Oct 1, 2013
549f522
Well, we sped things up by moving the loop INISDE cudaRaytraceCore. S…
Oct 1, 2013
8fd0cc0
Using my own iteration counter, we no longer have the image "ramp up"…
Oct 1, 2013
9b3c0af
Cleaned up the code. Main point is that we fixed the "ramping", plus …
Oct 1, 2013
ea2e9f4
Making all materials diffuse for now. I'll deal with perfect specular…
Oct 1, 2013
56f5ead
Modified the ray struct. We're adding a map of accumulated colors.
Oct 2, 2013
743d450
Succesfully passed in the map for accumulation...
Oct 2, 2013
a73355e
Well, now the accumulator should be working correctly.
Oct 2, 2013
b5529c1
Updated the old raytrace kernel for the last time.
Oct 2, 2013
64ad9fe
Hey! Something actually happened! Some weird artifacts, but the resul…
Oct 2, 2013
3d628ae
Well, we changed the sample scene so that we have a closed box... dun…
Oct 2, 2013
699c1d7
Added in the form factor, fixed the artifacts with writing to the buf…
Oct 2, 2013
9ab5ee4
OMG!!! Generating random numbers differently REALLY HELPS!! ZOMG!!
Oct 2, 2013
93936bc
Removed the form factor. Picture looks brighter. NOW the problem seem…
Oct 2, 2013
f5a6e26
Changing the random numbers around a bit does seem to help!
Oct 2, 2013
ef22e26
Better, but there are still patterns in mah noise.
Oct 2, 2013
b78b506
Making the light bigger like Karl did helps a lot...
Oct 2, 2013
cc90ebb
Now with the perfect specular code added. Hopefully it'll work now...
Oct 2, 2013
0bb022f
It almost works but weird white dots appear over everything now!
Oct 2, 2013
d11444d
Fixed the bright dots caused by reflection issue.
Oct 2, 2013
2a203a8
Added jittering for antialiasing. Looks like it's working...
Oct 2, 2013
54cd5e5
Added PNG comparison of WITH jittering and WITHOUT jittering.
Oct 2, 2013
4999e7d
We are dividing by the super sample number. Now's time to run loops.
Oct 2, 2013
7fbe0e8
Working with 1 sample per pixel.
Oct 2, 2013
526a663
Fiddled with the random number generation again. Doesn't seem a whole…
Oct 2, 2013
aeb8c22
Well, now we put supersampleIdx into the random seed...
Oct 2, 2013
a55dc33
Well, reverted the seed back to adding time to the outside...
Oct 2, 2013
54c7674
Supersampled AA working!
Oct 2, 2013
422f2ce
Got parallel reduce working! Yippee!!
Oct 2, 2013
ba0e8e6
Now we can shift the blue sphere upwards...
Oct 3, 2013
4def4d4
Added translational motion blur!
Oct 3, 2013
cc0a3e3
Got blur working.
Oct 3, 2013
7247e1f
Got motion blur with arc going!
Oct 3, 2013
e43c675
Ready for double buffering the scan!
Oct 3, 2013
7f19803
Added README
Oct 3, 2013
ae79323
Well, commented out unnecessary stuff for the exclusive scan. Now it'…
Oct 6, 2013
ef90b3f
NOW MY OWN STREAM COMPACTION WORKS!!! OMFG!!!
Oct 6, 2013
aa726f0
Well, fixed the exclusive scan for real this time. I think I didn't c…
Oct 6, 2013
b451245
Well, in theory the random number seeing works now.
Oct 7, 2013
5da8c7c
Put new random number generator!
Oct 8, 2013
3a83775
Tests show that there's no substantial difference between random numb…
Oct 8, 2013
8ee9db0
Interactive camera now works with pathtracing!
Oct 9, 2013
c7efe75
Well, now the keyboard also resets the tracer itself.
Oct 9, 2013
9f608c6
Added the code back in to turn this back into an ordinary raytracer. …
Oct 13, 2013
0009821
We can now go back to a regular raytracer. YAY!
Oct 13, 2013
c759f0c
Got some extra structures going in order to hold the metaballs.
Oct 13, 2013
bb46c72
Well, we can add metaballs without blowing up. Now it's time to actua…
Oct 13, 2013
1609000
Now we can count our number of metaballs!
Oct 13, 2013
88fc739
Now we can put NON-metaball geometry in its own buffer. Time to creat…
Oct 13, 2013
81c8962
Now we put the metaballs into a separate list. Time to render that list.
Oct 13, 2013
fb0e72b
Now allocating/deallocating correctly
Oct 13, 2013
15bfb71
Almost ready to integrate metaballs
Oct 13, 2013
518979b
Changed the sample scene a little bit. Now it is time to use a proper…
Oct 13, 2013
bf71720
Well, now I made the sphere rotations zero.
Oct 13, 2013
552ee02
Now we have a loop inside metaballIntersectionTest. This still checks…
Oct 14, 2013
cef3f84
Well, we calculate mi and zi without crashing. Who knows if its correct.
Oct 14, 2013
f4f6b18
Back to the old scene file. Unfortunately.
Oct 14, 2013
e2ba428
Updated readme, pictures.
Oct 14, 2013
92b86dd
First picture!
Oct 14, 2013
2a08c58
youtube video added
Oct 14, 2013
de33f14
Updated jittering photos
Oct 14, 2013
384ec4b
Added jittering/no jittering comparison
Oct 14, 2013
a5f6de9
Added raytrace compaction.
Oct 14, 2013
f6192e3
Final post ready!
Oct 14, 2013
679631e
Update README.md
Mar 17, 2014
ec974b0
Update README.md
Mar 17, 2014
9110fe2
Update README.md
Mar 17, 2014
0d22d94
Update README.md
Mar 17, 2014
04695c7
Update README.md
Mar 17, 2014
ac870e3
Update README.md
Mar 17, 2014
87e2204
Update README.md
Mar 17, 2014
2caabda
Update README.md
Mar 17, 2014
fdf058e
Delete oldrandom_100.png
Mar 17, 2014
857c074
Rearranged where the picture files are so we have a cleaner file
Mar 17, 2014
7ed8954
Update README.md
Mar 17, 2014
7bb69ac
Delete performance_data
Mar 17, 2014
49a1ba4
Delete oldRaytraceKernel.txt
Mar 17, 2014
2b56f58
Delete PathtracePerformanceNotes.txt
Mar 17, 2014
438f858
Update README.md
Mar 18, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .directory
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[Dolphin]
Timestamp=2013,10,11,0,43,45
Version=3
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
PROJ1_NIX/565raytracer
*.o
cscope.out
*.swp
tags
674 changes: 674 additions & 0 deletions LICENSE.txt

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions PERFORMANCE_COMPARISON.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
For my performance comparison experiment, I tweaked the tile size. Here are my results:

Tile Size 1: 0.6 fps
Tile Size 2: 0.6 fps
Tile Size 3: 8.55 fps
Tile Size 8: 19.96 fps
Tile Size 16: 19.96 fps

See the graph on performance_experiment.png.

It makes sense that performance rises as we increase the tile size and assign more threads
to each block. However, as the tile size gets larger, we see the performance plateau, probably
because the GPU isn't capable of running that many threads at the same time (we run out
of registers). A tile size of 32 or above doesn't work at all!

2 changes: 1 addition & 1 deletion PROJ1_MAC/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ clean:
rm bin/565raytracer
rm *.o

.PHONY : bin/565raytracer
.PHONY : bin/565raytracer
11 changes: 7 additions & 4 deletions PROJ1_NIX/makefile
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
#All cuda paths are for v5.0+

NVCC = nvcc -m64
CC = gcc -m64
NVCC = nvcc -m64 -arch sm_21
CC = gcc -m64
CPPC = g++ -m64

CUDA_FLAGS = -I/usr/local/cuda/samples/common/inc -I/usr/local/cuda/include

LFLAGS = -lglut -lGL -lGLEW
LFLAGS = -lglut -lGL -lGLEW

all: 565raytracer

#raytraceHelpers.o: ../src/raytraceHelpers.cu
#$(NVCC) $(CUDA_FLAGS) -c ../src/raytraceHelpers.cu

raytraceKernel.o: ../src/raytraceKernel.cu
$(NVCC) $(CUDA_FLAGS) -c ../src/raytraceKernel.cu

Expand All @@ -34,7 +37,7 @@ stb_image_write.o: ../src/stb_image/stb_image_write.c
main.o: ../src/main.cpp
$(CPPC) $(CUDA_FLAGS) ../src/main.cpp -c

565raytracer: main.o raytraceKernel.o glslUtility.o utilities.o image.o scene.o stb_image_write.o stb_image.o
565raytracer: main.o raytraceKernel.o glslUtility.o utilities.o image.o scene.o stb_image_write.o stb_image.o
$(NVCC) $(LFLAGS) main.o raytraceKernel.o glslUtility.o utilities.o image.o scene.o stb_image_write.o stb_image.o -o 565raytracer

clean:
Expand Down
221 changes: 221 additions & 0 deletions PROJ1_NIX/sampleScene.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
MATERIAL 0 //white diffuse
RGB 0.9 0.9 0.9
SPECEX 1
SPECRGB 1 1 1
REFL 0
REFR 0
REFRIOR 0
SCATTER 0
ABSCOEFF 0 0 0
RSCTCOEFF 0
EMITTANCE 0

MATERIAL 1 //red diffuse
RGB .63 .06 .04
SPECEX 1
SPECRGB 1 1 1
REFL 0
REFR 0
REFRIOR 0
SCATTER 0
ABSCOEFF 0 0 0
RSCTCOEFF 0
EMITTANCE 0

MATERIAL 2 //green diffuse
RGB .15 .48 .09
SPECEX 1
SPECRGB 1 1 1
REFL 0
REFR 0
REFRIOR 0
SCATTER 0
ABSCOEFF 0 0 0
RSCTCOEFF 0
EMITTANCE 0

MATERIAL 3 //red glossy
RGB .63 .06 .04
SPECEX 100
SPECRGB 1 1 1
REFL 0
REFR 0
REFRIOR 2
SCATTER 0
ABSCOEFF 0 0 0
RSCTCOEFF 0
EMITTANCE 0

MATERIAL 4 //white glossy
RGB 0.9 0.9 0.9
SPECEX 100
SPECRGB 1 1 1
REFL 0
REFR 0
REFRIOR 2
SCATTER 0
ABSCOEFF 0 0 0
RSCTCOEFF 0
EMITTANCE 0

MATERIAL 5 //moving
RGB 0.15 0.09 0.48
SPECEX 1
SPECRGB 1 1 1
REFL 0
REFR 1
REFRIOR 2.2
SCATTER 0
ABSCOEFF 2 2 2
RSCTCOEFF 13
EMITTANCE 0

MATERIAL 6 //green glossy
RGB .15 .48 .09
SPECEX 100
SPECRGB 1 1 1
REFL 0
REFR 0
REFRIOR 2.6
SCATTER 0
ABSCOEFF 0 0 0
RSCTCOEFF 0
EMITTANCE 0

MATERIAL 7 //light
RGB 1 1 1
SPECEX 1
SPECRGB 0 0 0
REFL 0
REFR 0
REFRIOR 0
SCATTER 0
ABSCOEFF 0 0 0
RSCTCOEFF 0
EMITTANCE 1

MATERIAL 8 //light
RGB 1 1 1
SPECEX 1
SPECRGB 0 0 0
REFL 0
REFR 0
REFRIOR 0
SCATTER 0
ABSCOEFF 0 0 0
RSCTCOEFF 0
EMITTANCE 2

MATERIAL 9 //mirror
RGB .43 .43 .47
SPECEX 100
SPECRGB 1 1 1
REFL 1
REFR 0
REFRIOR 2
SCATTER 0
ABSCOEFF 0 0 0
RSCTCOEFF 0
EMITTANCE 0

MATERIAL 10 //moving
RGB 0.15 0.09 0.48
SPECEX 1
SPECRGB 1 1 1
REFL 0
REFR 1
REFRIOR 2.2
SCATTER 0
ABSCOEFF 2 2 2
RSCTCOEFF 13
EMITTANCE 0

CAMERA
RES 800 800
FOVY 45
ITERATIONS 5000
FILE test.bmp
frame 0
EYE 0 4.5 4.9
VIEW 0 0 -1
UP 0 1 0

OBJECT 0
cube
material 0
frame 0
TRANS 0 0 0
ROTAT 0 0 90
SCALE .01 10 10

OBJECT 1
cube
material 0
frame 0
TRANS 0 5 -5
ROTAT 0 90 0
SCALE .01 10 10

OBJECT 2
cube
material 0
frame 0
TRANS 0 10 0
ROTAT 0 0 90
SCALE .01 10 10

OBJECT 3
cube
material 1
frame 0
TRANS -5 5 0
ROTAT 0 0 0
SCALE .01 10 10

OBJECT 4
cube
material 2
frame 0
TRANS 5 5 0
ROTAT 0 0 0
SCALE .01 10 10

OBJECT 5
sphere
material 9
frame 0
TRANS 0 2 0
ROTAT 0 180 0
SCALE 3 3 3

OBJECT 6
sphere
material 0
frame 0
TRANS 2 5 2
ROTAT 0 180 0
SCALE 2.5 2.5 2.5

OBJECT 7
sphere
material 0
frame 0
TRANS 0 5 -2
ROTAT 0 180 0
SCALE 3 3 3

OBJECT 8
cube
material 8
frame 0
TRANS 0 10 0
ROTAT 0 0 90
SCALE .3 10 10

OBJECT 9
cube
material 0
frame 0
TRANS 0 5 5
ROTAT 0 -90 0
SCALE .01 10 10
55 changes: 4 additions & 51 deletions scenes/sampleScene.txt → PROJ1_NIX/sphereScene.txt
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
scene

MATERIAL 0 //white diffuse
RGB 1 1 1
SPECEX 0
Expand Down Expand Up @@ -117,74 +119,25 @@ VIEW 0 0 -1
UP 0 1 0

OBJECT 0
cube
material 0
frame 0
TRANS 0 0 0
ROTAT 0 0 90
SCALE .01 10 10

OBJECT 1
cube
material 0
frame 0
TRANS 0 5 -5
ROTAT 0 90 0
SCALE .01 10 10

OBJECT 2
cube
material 0
frame 0
TRANS 0 10 0
ROTAT 0 0 90
SCALE .01 10 10

OBJECT 3
cube
material 1
frame 0
TRANS -5 5 0
ROTAT 0 0 0
SCALE .01 10 10

OBJECT 4
cube
material 2
frame 0
TRANS 5 5 0
ROTAT 0 0 0
SCALE .01 10 10

OBJECT 5
sphere
material 4
frame 0
TRANS 0 2 0
ROTAT 0 180 0
SCALE 3 3 3

OBJECT 6
OBJECT 1
sphere
material 3
frame 0
TRANS 2 5 2
ROTAT 0 180 0
SCALE 2.5 2.5 2.5

OBJECT 7
OBJECT 2
sphere
material 6
frame 0
TRANS -2 5 -2
ROTAT 0 180 0
SCALE 3 3 3


OBJECT 8
cube
material 8
frame 0
TRANS 0 10 0
ROTAT 0 0 90
SCALE .3 3 3
Binary file added PROJ1_NIX/test.0.bmp
Binary file not shown.
Loading