tuned ray-triangle intersection, now there are three algorithms to choose from:
Plucker, Barycentric and Barycentric with preprocessing (Wald)
methods in Vector and Shape (and derivates) made const
+ − ifndef $(ROOT)
+ − ROOT=$(shell pwd)/..
+ − endif
+ −
+ − include $(ROOT)/config.mk
+ −
+ −
+ − ### Targets ###
+ − all: realtime realtime_dragon spheres_shadow
+ −
+ − realtime: realtime.o libs-double
+ − $(CXX) -o $@ $(ROOT)/bin/libs-double/*.o $< $(LDFLAGS) $(SDL_LDFLAGS)
+ −
+ − realtime_dragon: realtime_dragon.o libs-double
+ − $(CXX) -o $@ $(ROOT)/bin/libs-double/*.o $< $(LDFLAGS) $(SDL_LDFLAGS)
+ −
+ − spheres_shadow: spheres_shadow.o image.o libs-float
+ − $(CXX) -o $@ $(ROOT)/bin/libs-float/*.o $< image.o $(LDFLAGS) -lpng
+ −
+ − libs-float:
+ − $(MAKE) -C ../src libs-float
+ −
+ − libs-double:
+ − $(MAKE) -C ../src libs-double
+ −
+ − realtime.o: realtime.cc
+ − $(CXX) -c -o $@ $(CCFLAGS) $(SDL_CCFLAGS) $< $(DEFS) -DPYRIT_DOUBLE
+ −
+ − realtime_dragon.o: realtime_dragon.cc
+ − $(CXX) -c -o $@ $(CCFLAGS) $(SDL_CCFLAGS) $< $(DEFS) -DPYRIT_DOUBLE
+ −
+ − image.o: image.c
+ − $(CXX) -c -o $@ $*.c
+ −
+ − spheres_shadow.o: spheres_shadow.cc
+ − $(CXX) -c -o $@ $*.cc $(CCFLAGS) $(DEFS)
+ −
+ − clean:
+ − rm -f spheres_shadow realtime realtime_dragon *.o