SkyWorks Real-Time Cloud Rendering Engine Mark J. Harris University of North Carolina at Chapel Hill email: harrism@cs.unc.edu http://www.cs.unc.edu/~harrism/SkyWorks Updated May 3rd, 2002 SKYWORKS v0.01a README.txt This demo demonstrates real-time rendering of realistically illuminated volumetric clouds. ------------------------------------------------------------------------------ SOURCE CODE INSTRUCTIONS AND NOTES This is the source code for the SkyWorks cloud rendering engine and demo, by Mark J. Harris. (http://www.cs.unc.edu/~harrism) As the license above reads, this is truly free software. Not in the GPL sense, because you can use it in a commercial product if you choose. However, please understand that it is also provided as is, and although I (Mark Harris) will try to answer relevant questions when possible, I am a very busy graduate student, so please be patient and polite. Having said that, I hope you find this code useful. Please send comments, suggestions, bug reports (and fixes, preferably) to harrism@cs.unc.edu. If you modify this code in any useful ways, or use it for something novel, clever, or just plain cool, please tell me about it, and send me a screenshot! ------------------------------------------------------------------------------ INSTALLATION NOTES 1. REQUIREMENTS: This code compiles with Microsoft Visual C++ 6. Workspace and project files are included. I have not worked to make this code work under Linux or other platforms (volunteers are welcome to do so!). SkyWorks is built on top of GLVU. GLVU is GLVU is a collection of C++/OpenGL viewer libraries that support many of the common functions needed by graphics programmers. It is written and maintained by various students at UNC. An up-to-date version of the GLVU libraries used by SkyWorks is included with the SkyWorks source installer. Updates are available here: http://www.cs.unc.edu/~walk/software/glvu/. If you want to build the SkyWorks documentation, you'll also need the doxygen binaries: http://www.doxygen.org. Install it in a path that has NO SPACES. In other words, do not put it in C:\Program Files\doxygen. The reason is that MSVC doesn't handle spaces in environment variables well. Set an environment variable (from the system settings control panel in Windows) called DOXYDIR to point at the location of the doxygen.exe binary. If you want to edit SkyWorks scenes (lights and static geometry) in 3D Studio MAX, then you'll need Pierre Terdiman's Flexporter to export scenes in ZCB format: http://www.codercorner.com/Flexporter.htm. Install it according to Pierre's instructions. 2. BUILD: First Open the main glvu workspace and build the 3 libraries SkyWorks needs. The workspace file is SkyWorks\glvu\MSVC6\libs.dsw. Build these libraries: lib_glvu lib_glvu_fileutils lib_glvu_images (Build both Debug and Release if you plan to build SkyWorks in both.) NOTE: If you do not successfully build GLVU, then the SkyWorks builds will fail, so make sure GLVU is built and that all header and library files got copied correctly to SkyWorks\glvu\include and SkyWorks\glvu\lib, respectively. To build SkyWorks and the SkyWorks Demo, open SkyWorks\SkyDemo\SkyDemo.dsw. Build the SkyDemo project. Since it depends on SkyWorks and SkyZCBLoader, these projects will be built first automatically. 3. RUN: To run the demo, you can just select "Build->Execute SkyDemo.exe". To run outside of Visual Studio, you need to copy the executable to the main SkyDemo directory where the "*.sky" files are. Then you can double click on one of the "Run*.bat" files in that directory, or type a command like "SkyDemo small.sky" at a command prompt. 4. BUILDING THE DOCUMENTATION: Install the doxygen (http://www.doxygen.org) binaries as described above, and then build the SkyDocs and SkyDemoDocs classes. 5. SKYEDITOR: Sky editor is an interim solution to putting together scenes for SkyWorks. It can be built by opening the SKYROOT\Sky\SkyEditor\SkySimpleEditor.dsw and building the project. It is a simple command line editor that allows you to specify .cld (cloud) files to load and rendering, along with a player model (.ZCB, exported from MAX with flexporter), A scene file (also .zcb, includes lights and static models), and a skybox (.tga or .ppm files, see the SKYROOT\SkyDemo\data\SkyBoxes directory for file naming conventions. You specify only the "_.[tga | ppm]" portion of the filename, and the direction suffixes will be added by the engine at load time. In the future, I may build a better editor, with a GUI and a cloud editor. If anyone wants to volunteer for this job, I'd love it, but I would ask that you build it in the QGLVU (http://www.cs.unc.edu/~walk/software/glvu) framework running the SkyWorks engine, since SkyWorks is already built on GLVU and should work very well with QGLVU. Plus, Qt is probably the best UI toolkit ever written (IMHO). ------------------------------------------------------------------------------ SYSTEMS TESTED: I have run this demo on NVIDIA GeForce cards and ATI Radeon 8500 cards. The demo has worked fine on these systems: Intel PIII 800MHz, NVIDIA GeForce 2 (64MB) Intel PIII 800MHz, ATI Radeon 8500 (64MB) Intel P4 Xeon 1.7GHz (dual), ATI Radeon 8500 (64MB) Intel P4 2GHz, NVIDIA GeForce 3 (64MB) Intel PIII 1GHz, NVIDIA GeForce 4 Ti 4400 (128MB) Intel P4 2GHz, NVIDIA GeForce 4 Ti 4600 (128MB) Laptop: Toshiba Satellite PIII 1GHz, NVIDIA GeForce 2 Go (16MB). This system has inconsistent frame rates due to the low amount of video memory, but otherwise it runs OK. The single cloud demo runs fine. If you test this code on a system significantly different than above, please report whether it works or not to harrism@cs.unc.edu. Please only do so if the system is significantly different. If it does not, send detailed information of the problem symptoms. KNOWN ISSUES: 5/3/2002: - Intel Compiler: This code doesn't compile yet on the Intel C++ compiler. - Display Color Depth: SkyWorks needs 32 bit color to run properly. If your display is set to less than this (16 bit is common), SkyWorks will report a warning at startup. Currently it runs quite slowly in 16 bit mode. I am unsure why. I suggest you switch your display settings to 32 bits. To do so, open the Display control panel, and select the settings tab. Then select "True Color (32 bit)" in the "Colors" drop- down list box. KNOWN BUGS: 5/3/2002: (initial release) - None yet! RELEASE HISTORY: 5/3/2002: v0.1a (Initial Release). QUESTIONS / PROBLEMS: Email Mark Harris at harrism@cs.unc.edu LICENSE: ------------------------------------------------------------------------------ SkyWorks : Copyright 2002 Mark J. Harris and The University of North Carolina at Chapel Hill ------------------------------------------------------------------------------ Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Binaries may be compiled with this software without any royalties or restrictions. The author(s) and The University of North Carolina at Chapel Hill make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. ------------------------------------------------------------------------------