ผลต่างระหว่างรุ่นของ "RDHR Project"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
(ไม่แสดง 49 รุ่นระหว่างกลางโดยผู้ใช้ 4 คน)
แถว 1: แถว 1:
== Grammar for Scene Description Language ==
+
This page contains information about the Radiance Decomposition Hierarchical Radiosity (RDHR) research project.
<scene> ::= <camera> <colors> <lights> <objects>
 
 
<camera> ::= camera {
 
                eye <three-floats>
 
                at <three-floats>
 
                up <three-floats>
 
                fov <float>
 
              }
 
  
<colors> ::= colors {
+
== Subversion Repositories ==
              <color-binding-list>
+
* [http://theory.cpe.ku.ac.th/pramook_lightfairy/branches/rdhr/ C#] (as a fork of LightFairy library)
            }
+
* [http://theory.cpe.ku.ac.th/pramook_rdhr-c++/ C++]
  
<color-binding-list> ::= <color-name> = <rgb> <color-binding-list> |
+
== Obtaining the Source ==
                          __empty-string__
+
=== Installing Subversion and Tortoise SVN ===
 +
Please grab Subversion from [http://subversion.tigris.org/project_packages.html this page]. You may also wish to download [http://tortoisesvn.tigris.org/ Tortoise SVN], which provides a nice integration between Subversion and Windows Explorer, from [http://tortoisesvn.net/downloads here].
  
<color-name> ::= $<name>
+
=== Creating a Branch ===
 +
The directory "trunk" is supposed to contain ''stable'' code. New code shall be developed independently in different ''branches'' private to each member of the team. These branches will be ''merged'' into the trunk after members agree on how to integrate their codes. Hence, it's important that you create a branch for yourself.
  
  <lights> ::= lights {
+
Suppose you're going to create a branch named "my_branch." Execute the following command:
                <light-binding-list>
+
  <pre>svn copy http://theory.cpe.ku.ac.th/pramook_rdhr-c++/trunk http://theory.cpe.ku.ac.th/pramook_rdhr-c++/branches/my_branches -m "create my_branch"</pre>
              }
 
  
  <light-binding-list> ::= <light-name> = <light-specification> <light-binding-list> |
+
=== Checking Out Your Branch ===
                          __empty-string__
+
To download the code from the branch you just created, execute the following common in your shell:
 +
  <pre>svn checkout http://theory.cpe.ku.ac.th/pramook_rdhr-c++/branches/my_branch <directory></pre>
 +
This will download all the latest version of the files to the directory <directory>.
  
<light-name> ::= @<name>
+
=== Checking Out the Trunk ===
+
In some case, you might want to download the code from the trunk. The command to execute is:
  <light-specification> ::= <diffuse-light>
+
  <pre>svn checkout http://theory.cpe.ku.ac.th/pramook_rdhr-c++/trunk <directory></pre>
 +
If you want to commit anything to the trunk, do so VERY CAREFULLY and MAKE SURE THAT EVERYTHING COMPILES.
  
<light> ::= <light-name> | <light-specification> | no_emission
+
== Notes on Building the C++ Version ==
 +
=== Requirements ===
 +
You need the following software:
 +
* Microsoft Visual C++ Express 2005. [http://msdn2.microsoft.com/en-gb/vstudio/aa700736.aspx Grab it here.]
 +
: It's important that you use VC2005 because CUDA only work with Microsoft C compiler 6.0 or 7.1, which comes with VC2003 or VC2005. I use VC2005 now, and the repository contains VC2005 project files.
 +
* Microsoft Windows Server 2003 R2 Platform SDK. [http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en Grab it here.] [http://www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A&displaylang=en Grab the full ISO here.]
 +
: This is the newest Windows SDK I could find.
 +
Please install them and DO NOT alter their installation directories. The reason is that the Windows SDK include directory is hard-coded into rdhr-c++ project files.
  
  <diffuse-light> ::= diffuse_light {
+
=== Cannot open precompiled header file error ===
                      <color>
+
When building the "rdhr" project, you might get an error message like this:
                    }
+
  C1083: Cannot open precompiled header file: 'Debug/<Project-Name>.pch': No such file or directory.
 +
To make it go away, compile "stdafx.cpp" alone first, then build the project.
  
<color> ::= <color-name> | <rgb>
+
=== UnitTest++.vsnet2005 and TestUnitTest++.vsnet2005 ===
 +
Sometimes these two projects will be unloaded when you open the solution. If you have not built these two projects on your local machines, please load and build them.
  
<rgb> ::= rgb <three-floats>
+
== Notes on Building the C# Version ==
 +
You need:
 +
* Visual C# 2008 [http://www.microsoft.com/express/download/ Grab it here.]
 +
* Tao Framework 2.0 [http://www.taoframework.com/ Grab it here.]
 +
After checking out the code from http://theory.cpe.ku.ac.th/pramook_lightfairy/branches/rdhr/trunk, the program should build without modifications.
  
<three-floats> ::= <float> <float> <float>
+
== UnitTest++ ==
 +
Information on UnitTest++, the unit testing framework I'm using, can be found [http://unittest-cpp.sourceforge.net here].
  
<objects> ::= <object> <objects> |
+
There's also a nice tutorial on how to write unit tests [http://unittest-cpp.sourceforge.net/money_tutorial/ here].
              __empty-string__
 
 
<object> ::= <mesh> | <triangle> | <transform>
 
 
<mesh> ::= mesh {
 
              file <quoted-string>
 
              <color>
 
              <light>
 
            }
 
  
<triangle> ::= triangle {
+
== Readings ==
                  <three-floats>
+
=== Spherical Harmonics ===
                  <three-floats>
+
* [http://theory.cpe.ku.ac.th/~pramook/files/spherical-harmonic-lighting.pdf Spherical Harmonic Lighting: The Gritty Details]
                  <three-floats>
+
* [http://theory.cpe.ku.ac.th/~pramook/files/SHExp.pdf Real-Time Soft Shadows in Dynamic Scenes using Spherical Harmonic Exponentiation]
                  <color>
+
* [http://theory.cpe.ku.ac.th/~pramook/files/shexp_supp.pdf Supplement for Real-Time Soft Shadows in Dynamic Scenes using Spherical Harmonic Exponentiation]
                  <light>
+
* [http://theory.cpe.ku.ac.th/~pramook/files/ProxyPG.pdf Image-Based Proxy Accumulation for Real-Time Soft Global Illumination]
                }
+
* [http://www.sjbrown.co.uk/?article=sharmonics Real-Valued Spherical Harmonics Basis Functions]
 +
* Volker Schönefeld. [http://theory.cpe.ku.ac.th/~pramook/files/prosem_paper.pdf Spherical Harmonics.]
 +
* Peter-Pike Sloan. '''Stupid Spherical Harmonics Tricks.''' [http://theory.cpe.ku.ac.th/~pramook/files/GDC08SH_web.pptx PPTX] and [http://theory.cpe.ku.ac.th/~pramook/files/StupidSH35.pdf its accompanying paper].
  
<transform> ::= transform {
+
=== Other Global Illumination Algorithms ===
                  <transform-list>
+
* [http://theory.cpe.ku.ac.th/~pramook/files/arikan-radiance.pdf Fast and Detailed Approximate Global Illumination with Irradiance Decomposition] [http://theory.cpe.ku.ac.th/~pramook/files/a10-arikan.pdf Talk]
                  <objects>
+
* [http://theory.cpe.ku.ac.th/~pramook/files/ImplicitVisibilityAndAntiradiance.pdf Implicit Visibility and Antiradiance for Interactive Global Illumination]
                }
+
* [http://theory.cpe.ku.ac.th/~pramook/files/PG07_ImplicitVis.pdf Interactive Global Illumination Using Implicit Visibility]
  
<transform-list> ::= <one-transform> <transform-list> |
+
=== Irradiance and Radiance Caching ===
                      __empty-string__
+
* [http://theory.cpe.ku.ac.th/~pramook/files/irradiance-gradient.pdf Irradiance Gradient]
+
* [http://theory.cpe.ku.ac.th/~pramook/files/gradientSH_RS04 Spherical Harmonic Gradient for Mid-Range Illumination]
<one-transform> ::= translate <three-floats> |
+
* [http://theory.cpe.ku.ac.th/~pramook/files/krivanek05radiance_caching.pdf Radiance Caching for Efficient Global Illumination Computation]
                    translate_x <float> |
+
* [http://theory.cpe.ku.ac.th/~pramook/files/sccg2005-krivanek.pdf Improved Radiance Gradient Computation]
                    translate_y <float> |
 
                    translate_z <float> |
 
                    rotate <three-floats> <float> |
 
                    rotate_x <float> |
 
                    rotate_y <float> |
 
                    rotate_z <float> |
 
                    scale <three-floats> |
 
                    scale_x <float> |
 
                    scale_y <float> |
 
                    scale_z <float>
 
                    <matrix>
 
 
 
<matrix> ::= matrix {
 
                <sixteen-floats>
 
              }
 

รุ่นแก้ไขปัจจุบันเมื่อ 06:33, 13 มิถุนายน 2551

This page contains information about the Radiance Decomposition Hierarchical Radiosity (RDHR) research project.

Subversion Repositories

  • C# (as a fork of LightFairy library)
  • C++

Obtaining the Source

Installing Subversion and Tortoise SVN

Please grab Subversion from this page. You may also wish to download Tortoise SVN, which provides a nice integration between Subversion and Windows Explorer, from here.

Creating a Branch

The directory "trunk" is supposed to contain stable code. New code shall be developed independently in different branches private to each member of the team. These branches will be merged into the trunk after members agree on how to integrate their codes. Hence, it's important that you create a branch for yourself.

Suppose you're going to create a branch named "my_branch." Execute the following command:

svn copy http://theory.cpe.ku.ac.th/pramook_rdhr-c++/trunk http://theory.cpe.ku.ac.th/pramook_rdhr-c++/branches/my_branches -m "create my_branch"

Checking Out Your Branch

To download the code from the branch you just created, execute the following common in your shell:

svn checkout http://theory.cpe.ku.ac.th/pramook_rdhr-c++/branches/my_branch <directory>

This will download all the latest version of the files to the directory <directory>.

Checking Out the Trunk

In some case, you might want to download the code from the trunk. The command to execute is:

svn checkout http://theory.cpe.ku.ac.th/pramook_rdhr-c++/trunk <directory>

If you want to commit anything to the trunk, do so VERY CAREFULLY and MAKE SURE THAT EVERYTHING COMPILES.

Notes on Building the C++ Version

Requirements

You need the following software:

It's important that you use VC2005 because CUDA only work with Microsoft C compiler 6.0 or 7.1, which comes with VC2003 or VC2005. I use VC2005 now, and the repository contains VC2005 project files.
This is the newest Windows SDK I could find.

Please install them and DO NOT alter their installation directories. The reason is that the Windows SDK include directory is hard-coded into rdhr-c++ project files.

Cannot open precompiled header file error

When building the "rdhr" project, you might get an error message like this:

C1083: Cannot open precompiled header file: 'Debug/<Project-Name>.pch': No such file or directory.

To make it go away, compile "stdafx.cpp" alone first, then build the project.

UnitTest++.vsnet2005 and TestUnitTest++.vsnet2005

Sometimes these two projects will be unloaded when you open the solution. If you have not built these two projects on your local machines, please load and build them.

Notes on Building the C# Version

You need:

After checking out the code from http://theory.cpe.ku.ac.th/pramook_lightfairy/branches/rdhr/trunk, the program should build without modifications.

UnitTest++

Information on UnitTest++, the unit testing framework I'm using, can be found here.

There's also a nice tutorial on how to write unit tests here.

Readings

Spherical Harmonics

Other Global Illumination Algorithms

Irradiance and Radiance Caching