A Doom specific nVidia graphics card tweaking program.
Readme File:
Installation & Setting Up
-------------------------
1. Install 3mood with installer or unzip 3mood.zip (e.g. to desktop) and start 3mood tool.
-i, -ignore ignore GPU and CPU detects.
2. Set your Doom 3 directory (e.g. C:\Games\Doom 3) and other settings.
3. Adjust Settings
Vertex and Fragment Programs Settings
- Select vfp (Vertex and Fragment Programs settings) profile from
"Current active vfp profiles" list.
- OR/AND adjust settings manually.
In-game Graphics Settings
- Select cfg (In-game Graphics Settings) profile from "Current active
cfg profiles" list.
- OR/AND adjust settings manually.
4. Click "Apply" button to save the current vfp/cfg settings to the active profile or click "Add Profile" button
to make a new vfp/cfg profile (you will see the name of the newly created profile in the profiles list).
5. Click "Compile" button to install custom vertex and fragment programs OR in-game graphics
settings (Compile interaction.vfp into Doom 3\base\glprogs directory and autoexec.cfg into
Doom 3\base directory). After compile you're ready to play Doom 3. Custom vertex and fragment
programs and in-game graphics settings remains enabled in Doom 3 until you uninstall both
settings (See 'Uninstallation').
Note: Doom 3 doesn't work with custom vertex and fragment programs on pure server (multiplayer).
Uninstallation
--------------
1. Start 3mood tool.
2. Select "Vertex and Fragment Programs Settings" from menu and click "Remove" to uninstall custom
"interaction.vfp" file. You can also remove "interaction.vfp" file manually from Doom 3\base\glprogs directory.
3. Select "In-game Graphics Settings" from menu and click "Remove" to uninstall custom "autoexec.cfg"
file and restores your default DoomConfig.cfg settings. You can also remove "autoexec.cfg" file manually
from Doom 3\base directory.
4. Remove 3mood directory.
Fragment Program Performance Settings
-----------------------------------------
- Precision Hint Fastest (ARB_fragment_program option)
If a fragment program specifies the "ARB_precision_hint_fastest" program
option, implementations should select precision to minimize program execution
time, with possibly reduced precision. If a fragment program specifies the
"ARB_precision_hint_nicest" program option, implementations should maximize
the precision with possibly increased execution time.
- Short Temporaries (fp16) (NV_fragment_program option)
Variables declared as "SHORT" will represented with at least 16-bits per
component.
- Fp16 ALU Operations (NV_fragment_program option)
Arithmetic operations can be forced at 16-bit floating-point precision (fp16).
- Fx12 ALU Operations (NV_fragment_program option)
Arithmetic operations can be forced at 12-bit fixed point precision (fx12) on NV30 series gpu's.
This may cause a substantial performance hit on G80, G70 and NV40 series gpu's.
- Normalization Cube Map
Instead of using the math (DP3/RSQ/MUL instructions), normalize vectors with normalization
cube map.
- Normalize Specular Vector
Instead of using the normalization cube map for the specular vector, normalize
with math.
- NRM Instruction (NV_fragment_program2 option - G80, G70 and NV40 series gpu's)
3-Component Vector Normalize - the normalization uses approximate scale and may be
carried out at lower precision than a corresponding sequence of DP3, RSQ, and MUL
instructions.
- Normalize Light Vector
Instead of using the NRM instruction, normalize light vector with cube map. Using
NRM instruction for the light vector normalize may cause problems with ambient light.
- Specular Texture Lookup
Setting to replace specular texture lookup with arithmetic operations (SUB_SAT/MUL/
MUL_SAT instructions).
- Swizzle (xyz)
Rearrange or mask the vector components (xyz).
Vertex Program Performance Settings
--------------------------------------
- Multiply and Add (vp)
Setting to replace sequence of MUL and ADD instructions with MAD instruction in the
vertex program (vp).
- Ignore Second Vector to Light Calculation (SUB Instruction)
Ignore second (additional) vector to light calculation (SUB instruction) in the
vertex program.
Image Quality Settings
------------------------
- Specular Settings
3mood tuning tool support for adjusting the specular settings in Doom 3. In addition, 3mood
supports two completely new specular (highlight) functions to improve the visual quality of
specular highlights (more specular details on bump maps) over the default specular.
Specular
--------------------------------------------------------------
Default: DP3
Quality: DP3/MAD/DP3_SAT/POW
High quality (NV_fragment_program option): RFL/DP3/POW
- Specular Mul / Exp
Mul: Multiply the specular vectors.
Exp: Modulate the specular exponentiation (x^y).
- Constant Specular Modifier
Constant specular characteristic (default) is modulated by specular modifier. Enabling
this setting removes completely the plastic effect from Doom 3 scenes.
- Specular Modifier Scale
Modulate the constant specular modifier by the specular modifier scale.
- Clamp Specular Vector
Clamp the result vector components into range of [0,1] (DP3_SAT/RFL_SAT). Enabling
this setting reduces the plastic effect in Doom 3 scenes without Constant Specular
Modifier setting.
- Normal Vector Settings
- Reconstruct Normal Z Vector
It is also possible to reconstruct the z vector component of the normal in the fragment
program (MUL/ADD/RSQ/RCP instructions), which will provide even higher image quality.
The additional performance cost is relatively small.
- Normal Z Vector Scale
Scale the z vector component of the normal.
- Renormalize Normal Vector
Renormalizing the normal after the texture fetch can dramatically improve the quality of bump
mapping. The only problem with renormalization is that it can cause aliasing of specular highlights.
- Bump Mapping Settings
3mood supports also new bump mapping functions such as displacement and offset mapping.
- Bump Mapping
Normal mapping (default)
Offset mapping
Offset mapping is a simple way to augment bump mapping to include offset effects (more geometric
details). Offset mapping uses the information of the height of a surface (two-dimensional height
map) at a single point to offset the texture coordinates either toward or away from the viewer.
Steep and robust angles with offset mapping can limit offset and cause texture aliasing. Offset
mapping work also with z sampling functions.
Displacement mapping
Displacement mapping adds geometry details to surface by using the information of the height of
a surface (two-dimensional height map). Displacement mapping is ray traced (texel) and self-occluded.
- Z Functions
Reconstruct z
Reconstruct z function fetch height map from normal map and reconstruct the normal z vector.
Z sampling (ray tracing)
Z sampling functions fetch height map from normal map or diffuse/specular maps (w)
with ray tracing based z sampling algorithms.
Z sampling with z bias (ray tracing)
Z sampling with z bias functions fetch height map from normal map or diffuse/specular maps (w)
with raytracing based z sampling and z bias algorithms.
- Offset Scale / Bias
Scale: Offset scale factor.
Bias: Offset bias range.
- Z Sampling
Scale: Z sampling scale (depth) factor.
Bias: Z sampling bias (interval) range.
Iterations lin: Linear z sampling.
Iterations bin: binary z sampling.
Height Map Z Vector Scale
Scaling the z vector component of the height map after the texture fetch with Z sampling functions
scales geometry details of the surfaces.
Z vector scale: Scale the z vector component of the height map by exponentiation (x^y)
scale (POW instruction).
- Fetch Height Map from Specular or Diffuse Map (w)
Instead of using the normal map, fetch height map from the specular or diffuse map (w). This setting will
work only when height maps are stored into the specular or diffuse map's w component (alpha channel).
- Texture Sampling Settings
Texture sampling settings adding completely new texture sampling functions to improve the visual quality of
texture filtering and level of detail (LOD), e.g. less angle-dependent filtering. You can control separately
diffuse maps, normal maps and specular maps. Centroid texture sampling settings also improves multisampling
(MSAA and CSAA) quality on G80 series gpu's. With centroid texture sampling, you can control different maps
(e.g. diffuse, normal and specular) and vectors (e.g. view, light and projection) separately.
- Sampling With LOD Bias
Texture sample with LOD bias.
Diffuse Maps
Enabling this setting improves diffuse maps details but too low negative LOD bias modifier can also cause
texture aliasing.
Normal Maps
Enabling this setting improves normal maps and specular highlights details but too low negative LOD bias
modifier can also cause aliasing of specular highlights. High LOD bias modifier reduces or removes completely
the aliasing of specular highlights.
Specular Maps
Enabling this setting improves specular maps details but too low negative LOD bias modifier can also cause
aliasing of texture details or specular highlights. High LOD bias modifier reduces or removes completely
the aliasing of specular highlights.
- LOD Bias
Low LOD bias: Sharper texture details (image quality).
High LOD bias: Blurrer texture details (performance).
- Sampling With Explicit LOD (NV_fragment_program2 option - G80, G70 and NV40 series gpu's)
Instead of using the TEX instruction, sampling with TXL instruction (explicit LOD). Sampling with explicit LOD
can improve the visual quality of texture filtering and level of detail (LOD).
- Centroid Texture Sampling (NV_fragment_program4 option - G80 series gpu's)
Centroid texture sampling (attribute) improves multisampling (MSAA and CSAA) quality on G80 series gpu's by
returns a value inside the covered portion of the fragment, instead of at the center, and when used with
multisampling, it can remove some artifacts associated with sampling outside the polygon.
- Misc Settings
- Custom Color Settings
Modulate the fragment color components by the color modifiers.
3mood site and support
------------------------
3mood site for the latest release and setting profiles:
Please, post your suggestions, comments and feedbacks Forum@nVnews.net:
License
--------
This software is being distributed as Freeware. It may be freely
used, copied and distributed as long as it is not sold, and all
original files are included, including this license. By using this
software, you agree to these terms and the terms of the
disclaimer below.
Disclaimer
Tero Ojanpera (a.k.a. tertsi) or skenegroup|net may not be held
responsible for any damage which may be caused to your
system. Use all files at your own risk. If you do not accept these
terms you are not allowed to use, download or store any files
from skenegroup|net.
NVIDIA, the NVIDIA logo, GeForce and ForceWare are
trademarks or registered trademarks of NVIDIA Corporation.
DOOM 3 is registered trademark of id Software.
Copyright © 2005-2007 skenegroup.net. All rights reserved.
Jan 25 2007
tertsi (tertsi@skenegroup.net)
Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.