GAM532/DPS932 Student Resources
Game Engine Foundations
GAM532/DPS932 | Student List | Project Requirements | Teams and their Projects | Student Resources
Student Resources
The purpose of this page is to share useful information that can help students with their course work, projects and studying.
Fixing Error S1023 for DirectX SDK
I had issues installing the DirectX SDK June 2010. I kept getting an error (S1023).
I found a blog that explains how to fix the error.http://blogs.msdn.com/b/chuckw/archive/2011/12/09/known-issue-directx-sdk-june-2010-setup-and-the-s1023-error.aspx
From the blog:
(1) Remove the Visual C++ 2010 Redistributable Package version 10.0.40219 (Service Pack 1) from the system (both x86 and x64 if applicable). This can be easily done via a command-line with administrator rights:
MsiExec.exe /passive /X{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5} MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7}
(2) Install the DirectX SDK (June 2010)
(3) Reinstall the Visual C++ 2010 Redistributable Package version 10.0.40219 (Service Pack 1). On an x64 system, you should install both the x86 and x64 versions of the C++ REDIST. Be sure to install the most current version available , which at this point is the KB 2565063 with a security fix.
Following those steps fixed my problem with the installation of DirectX SDK.
Power Tools for Visual Studio
I found a neat extension for VS that includes productivity tools that makes it even better to use. I just thought I'd share this.
Some of the tools include useful features like:
- highlighting all occurrences of a word
- triple click to highlight entire line
- formatting tool to align assignment
- ctrl+click to the source of the defenition
- and more...
You can always disable a feature that you don't want in tools>options>Productivity Extension.
Note: This extension only works with 2010 version of Visual Studio.
A Note on Visual Studio Includes
- Brings this uptodate for DirectX June 2010 SDK
A problem that we ran into here at Team Mutalisk was that ourvcxproj file was being committed into the repository along with the committing user's include information. The problem with this was that other members had different include paths to the DX SDK and so when they updated after that user had committed, their vcxprojfile would be updated and the project would not compile for them.
We've come up with a solution to this problem:
- Set the header include path (Solution->Right-Click Project->Properties->Configuration Properties->VC++ Directories->Include Directories) for the project to:
$(IncludePath);%INCLUDE%;
- Set the library include path (Solution->Right-Click Project->Properties->Configuration Properties->VC++ Directories->Library Directories) for the project to:
$(LibraryPath);%LIB%;
- Do this for all configurations (Solution->Right-Click Project->Properties->Configuration(top of box))
- Create/Set the environmental variables
INCLUDE
andLIB
on your system. Do this through the Environment Variables dialog box.- (Win7/Vista: Start Menu->Right-Click Computer->Properties->Advanced system settings->Advanced tab->Environment Variables)
- (WinXP: Start Menu->Right-Click My Computer->Properties->Advanced tab->Environment Variables)
- You can add the environment variables to either only your account, at which point the project will only compile when you are logged into your own account, or to the entire system, at which point the project will compile will compile on any account on your machine. Make a decision and then click New under the appropriate list (top is user, bottom is system).
- Please note that in order to modify system environmental variables, your account must possess admin privileges or you must know the admin credentials (win 7) or must be logged into the admin account (Vista or older).
- First create the variable
INCLUDE
. EnterINCLUDE
in the Variable name box. Enter the path to your DX SDK/Include in the Variable value box; eg if my DX SDK is located atC:\Program Files\Microsoft DirectX SDK (August 2007)
then the value of myINCLUDE
variable would be:C:\Program Files\Microsoft DirectX SDK (August 2007)\Include;
- Second create the variable
LIB
. EnterLIB
in the Variable name box. Enter the path to your DX SDK/Lib/x86 in the Variable value box; eg if my DX SDK is located atC:\Program Files\Microsoft DirectX SDK (August 2007)
then the value of myLIB
variable would be:C:\Program Files\Microsoft DirectX SDK (August 2007)\Lib\x86;
- Please note that if either of the two variables already exists on your system, simply edit its value and concatenate the relevant path to its current value. Ensure that all paths are separated by semicolons. Eg:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib;C:\Program Files\Microsoft DirectX SDK (August 2007)\Lib\x86;
- Please note that if either of the two variables already exists on your system, simply edit its value and concatenate the relevant path to its current value. Ensure that all paths are separated by semicolons. Eg:
- Logout then login to refresh the windows environmental variable cache.
- Attempt to compile the project. Assuming that you have no syntax errors or other unrelated problems, the project should compile. If it does, then it's time commit the vcxproj file to your repository. Now that it's up there, others can modify it (add/remove files) without worrying about breaking other group members' dependencies.
This concludes the vcxproj tutorial, cheers!
Useful diagrams
Useful links around the web
Lighting Resources
References for Lighting Lecture - GAM632/DPS932 - Winter 2014
https://scs.senecac.on.ca/~gam666/pages/content/light.html
components of the lighting model
light sources
material reflectivity
types of light sources
http://zenit.senecac.on.ca/wiki/index.php/GAM670/DPS905_Weekly_Schedule_20121#Week_9_-_Mar_11
http://msdn.microsoft.com/en-us/library/bb147178%28v=VS.85%29.aspx
vertex and fragment shaders
rasterization - linear interpolation
dot product - why is it important
normalize - why is it important
reflection vector
http://en.wikipedia.org/wiki/Gouraud_shading
http://en.wikipedia.org/wiki/Phong_reflection_model
http://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_shading_model
BRDF - Bidirectional Reflectance Distribution Function
- Nicodemus 1965
http://en.wikipedia.org/wiki/Bidirectional_reflectance_distribution_function
Cook-Torrance 1981
- microfacets - fresnel reflection - self-shadowing
http://en.wikipedia.org/wiki/Specular_highlight#Cook.E2.80.93Torrance_model
http://en.wikipedia.org/wiki/Fresnel_equations
http://en.wikipedia.org/wiki/Schlick%27s_approximation
http://www.youtube.com/watch?v=0vQMQ8k5KQQ
http://www.youtube.com/watch?v=GLKo7niWNms
Lambert 1760 - ideally diffuse reflection
http://en.wikipedia.org/wiki/Lambertian_reflectance
http://en.wikipedia.org/wiki/Lambert%27s_cosine_law
Oren-Nayar 1993
- diffuse reflectance
http://en.wikipedia.org/wiki/Oren%E2%80%93Nayar_reflectance_model
Ward anisotropy
- two anisotrpy paramters
http://www.cs.utah.edu/~premoze/brdf/
Gooch - 1998
- non-photorealistic
http://mikeboers.com/blog/2011/12/09/the-gooch-lighting-model
http://npr-art.blogspot.ca/2009/06/gooch-shading-and-sils.html
Useful code snippets
foo("Hello World");