diff options
author | Ton Roosendaal <ton@blender.org> | 2011-04-27 15:58:34 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2011-04-27 15:58:34 +0400 |
commit | da376e0237517543aa21740ee2363234ee1c20ae (patch) | |
tree | 014a513ed8d0eccc5e54fef42347781e85bae56a /intern/cycles/app/cycles_server.cpp | |
parent | 693780074388111e7b9ef1c3825e462f398dc6c4 (diff) |
Cycles render engine, initial commit. This is the engine itself, blender modifications and build instructions will follow later.
Cycles uses code from some great open source projects, many thanks them:
* BVH building and traversal code from NVidia's "Understanding the Efficiency of Ray Traversal on GPUs":
http://code.google.com/p/understanding-the-efficiency-of-ray-traversal-on-gpus/
* Open Shading Language for a large part of the shading system:
http://code.google.com/p/openshadinglanguage/
* Blender for procedural textures and a few other nodes.
* Approximate Catmull Clark subdivision from NVidia Mesh tools:
http://code.google.com/p/nvidia-mesh-tools/
* Sobol direction vectors from:
http://web.maths.unsw.edu.au/~fkuo/sobol/
* Film response functions from:
http://www.cs.columbia.edu/CAVE/software/softlib/dorf.php
Diffstat (limited to 'intern/cycles/app/cycles_server.cpp')
-rw-r--r-- | intern/cycles/app/cycles_server.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/intern/cycles/app/cycles_server.cpp b/intern/cycles/app/cycles_server.cpp new file mode 100644 index 00000000000..bcf4d3ea769 --- /dev/null +++ b/intern/cycles/app/cycles_server.cpp @@ -0,0 +1,71 @@ +/* + * Copyright 2011, Blender Foundation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <stdio.h> + +#include "device.h" + +#include "util_args.h" +#include "util_foreach.h" +#include "util_path.h" +#include "util_string.h" + +using namespace ccl; + +int main(int argc, const char **argv) +{ + path_init(); + + /* device types */ + string devices = ""; + string devicename = "cpu"; + + vector<DeviceType> types = Device::available_types(); + + foreach(DeviceType type, types) { + if(devices != "") + devices += ", "; + + devices += Device::string_from_type(type); + } + + /* parse options */ + ArgParse ap; + + ap.options ("Usage: cycles_server [options]", + "--device %s", &devicename, ("Devices to use: " + devices).c_str(), + NULL); + + if(ap.parse(argc, argv) < 0) { + fprintf(stderr, "%s\n", ap.error_message().c_str()); + ap.usage(); + exit(EXIT_FAILURE); + } + + DeviceType dtype = Device::type_from_string(devicename.c_str()); + + while(1) { + Device *device = Device::create(dtype); + printf("Cycles Server with device: %s\n", device->description().c_str()); + device->server_run(); + delete device; + } + + return 0; +} + |