Difference between revisions of "User:Akopytov"
Line 5: | Line 5: | ||
== Lighting == | == Lighting == | ||
− | + | *Instructions to incorporate advanced lighting into your game: | |
− | Instructions to incorporate advanced lighting into your game: | ||
− | Download the full working solution here: | + | *Download the full working solution here: |
− | OR | + | *OR |
− | Download just the files that have changes relevant to lighting here: | + | *Download just the files that have changes relevant to lighting here: |
− | Copy from the files or manually code the following: | + | *Copy from the files or manually code the following: |
− | Configuration.h | + | *Configuration.h |
− | Increase the MAX_STR_ARRAYS macro by 1 (Line 46) | + | *Increase the MAX_STR_ARRAYS macro by 1 (Line 46) |
− | Add two more elements to the Integer enum: GF_NO_ALGS and GF_DF_ALGO (Lines 88, 89) | + | *Add two more elements to the Integer enum: GF_NO_ALGS and GF_DF_ALGO (Lines 88, 89) |
− | Add an element to the StrArray enum: GF_LITDESC (Line 127) | + | *Add an element to the StrArray enum: GF_LITDESC (Line 127) |
− | Create a macro called LIGHT_DESCRIPTIONS (Line 331) | + | *Create a macro called LIGHT_DESCRIPTIONS (Line 331) |
− | Create an enum called LightAlgorithm (Line 389) | + | *Create an enum called LightAlgorithm (Line 389) |
− | Context.cpp | + | *Context.cpp |
− | |||
************************ Lighting Documentation v1.00 ************************ | ************************ Lighting Documentation v1.00 ************************ |
Revision as of 13:14, 9 April 2011
Contact Information
Name: Andrei Kopytov
Seneca e-mail address: akopytov@learn.senecac.on.ca
Lighting
- Instructions to incorporate advanced lighting into your game:
- Download the full working solution here:
- OR
- Download just the files that have changes relevant to lighting here:
- Copy from the files or manually code the following:
- Configuration.h
- Increase the MAX_STR_ARRAYS macro by 1 (Line 46)
- Add two more elements to the Integer enum: GF_NO_ALGS and GF_DF_ALGO (Lines 88, 89)
- Add an element to the StrArray enum: GF_LITDESC (Line 127)
- Create a macro called LIGHT_DESCRIPTIONS (Line 331)
- Create an enum called LightAlgorithm (Line 389)
- Context.cpp
************************ Lighting Documentation v1.00 ************************ * Lighting with the programmable graphics pipeline currently requires the use of * the effects framework and works on the object level. This means the algorithm * with which you wish to illuminate your object will work on the entire object, not * a subset of that object. The inputs for the algorithm also work on the object level, * meaning all subsets will use the same values. * * To avoid bloating the object class, three variables will be used across the various * algorithms in different ways. It is very important to note that an algorithm may not * necessarily use all three variables in its calculations. Also, each algorithm may * accept different ranges of values from each of the variables it does use. The * lighting algorithms available for use in the framework are described below: * * Functions * --------- * power(), setPower(float) * getRoughness(), setRoughness(float) * getIndexOfRefraction, setIndexOfRefraction(float) * getAlgorithm(), setAlgorithm(LightAlgorithm) * * Inputs for setAlgorithm() * PHONG * BLINN_PHONG * COOK_TORRANCE * OREN_NAYAR * WARD_ANISO * ASH_SHIRLEY * * == Phong == * Isotropic * * Input Effective Range * power 0.0 - 1000 * * Makes objects look plastic * ========================================================================== * == Blinn-Phong == * Isotropic * * Input Effective Range * power 0.0 - 1000 * * Like Phong, but uses less instructions, also gives objects a plastic look * ========================================================================== * == Cook-Torrance == * Isotropic * * Input Effective Range * roughness 0.0 - 15.0 * index of refraction 0.0 - 10.0 * * Gives objects a metallic look * ========================================================================== * == Oren-Nayar == * Isotropic * * Input Effective Range * roughness 0.0 - 2.0 * * Diffuse only model, good for making objects look rough * ========================================================================== * == Ward Anisotropic == * Anisotropic * * Input Effective Range * roughness 0.0 - 2.0 * power 0.0 - 2.0 * * Allows the manipulation of specular lobe (change its shape) * ========================================================================== * == Ashikhmin-Shirley == * Anisotropic * * Input Effective Range * roughness 0 - 10000 * power 0 - 10000 * index of refraction 0.0 - 10.0 * * Good for making objects look metal or plastic, and can manipulate specular lobe * ========================================================================== * * For more information on lighting, check out: http://wiki.gamedev.net/index.php/D3DBook:Lighting