3mood is a small tuning program for Doom 3 compatible with NVIDIA GeForce 7800, 6800 and 5900 series cards. With 3mood it is possible to tune Doom 3's vertex and fragment programs by e.g. enhancing image quality and performance.


- Performance Options e.g. FP16 and NRM ALU Operations - Image Quality Options e.g. Specular and Offset Mapping - Easy GUI and Config Profiles e.g. Profiles for different cards - Support for future titles like Quake 4 and Quakewars

System and Driver Recommendation:

- NVIDIA GeForce 7800 or 6800 series cards for the best image quality and performance - 75.xx or newer NVIDIA ForceWare (Win2kxp) drivers



3mood v1.3.8b release
Doom 3 tuning tool for G70/NV40/NV30 gpu's. Developed by tertsi.

0.4.0 Installation & Setting Up Options

	1. Unzip 3mood.zip (e.g. to desktop) and start 3mood tool.

	2. Set your Doom 3 directory (e.g. C:\Games\Doom 3).

	3. Set up 3mood Options

		- Select option profile from 'Current Option Profiles' dropmenu or load profile (Open button) 
		  from config file.

		- OR set up options manually.

	4. Click 'Build interaction.vfp' button (build interaction.vfp into 'Doom 3\base\glprogs' directory) 
	   and you're ready to play Doom 3 with 3mood's custom vertex and fragment programs. You can start  
	   Doom 3 without 3mood tool.

0.5.0 Uninstallation

	1. Start 3mood tool and click 'Remove interaction.vfp' to remove custom 'interaction.vfp' file. 
	   You can also remove 'interaction.vfp' file manually from 'Doom 3\base\glprogs' directory.

	2. Remove 3mood directory.


1.0.0 Performance Options

	1.1.0 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.

	1.2.0 Short Temporaries (fp16) (NV_fragment_program option)
		Variables declared as 'SHORT' will represented with at least 16-bits per 

	1.3.0 FP16 ALU Operations (NV_fragment_program option)

		Arithmetic operations can be forced at 16-bit floating-point precision (fp16).

	1.4.0 FX12 ALU Operations (NV_fragment_program option)

		Arithmetic operations can be forced at 12-bit fixed point precision (fx12) on NV30 
		series gpu's. Don't use this with NV40 series gpu's because it may cause a substantial 
		performance hit.

	1.5.0 Normalization Cube Map

		instead of using the math (DP3/RSQ/MUL instructions), normalize with normalization 
		cube map.

	1.6.0 NRM Instruction (G70 and NV40 series gpu's)

		3-Component Vector Normalize  - the normalization uses approximate scale and may 
		be carried at lower precision than a corresponding sequence of DP3, RSQ, and MUL 

	1.7.0 Specular Texture Lookup

		option to replace specular texture lookup with arithmetic operations (SUB_SAT/MUL/
		MUL_SAT instructions).

	1.8.0 Swizzle (xyz)		

		Rearrange or mask the vector components (xyz).

	1.9.0 Multiply and Add (vp)

		Multiply And Add (vp): option to replace sequence of MUL and ADD instructions 
		with MAD instruction in the vertex program (vp).

2.0.0 Image Quality Options

	2.1.0 Specular

		3mood tuning tool offers two new specular (highlight) options for the players. Both 
		options improves the visual quality of specular highlights (more specular details on 
		bumpmaps) over the default specular. 

		Specular modes
		Default: DP3
		High Quality: DP3/MUL/MAD/DP3_SAT/MOV/POW
		Ultra Quality (NV_fragment_program option): RFL/MUL/DP3/POW

		2.1.1 Specular Mul / Exp

			Mul: Multiply the specular vectors.
			Exp: modulate the specular exponentiation (x^y).
		2.1.2 Modulate Specular Lookup Table

			Specular lookup table is modulated by specular modifier. This option to 
			remove the plastic effect in Doom 3 scenes.

			2.1.2b Specular Modulate Scale

				Modulate the specular modifier by the specular scale.

		2.1.3 Clamp Specular Vector

			Clamp the result vector components to range [0,1] (DP3_SAT/RFL_SAT). 
			This option to reduce the plastic effect in Doom 3 scenes without Modulate 
			Specular Lookup Table option.

	2.2.0 Offset Mapping

		3mood tuning tool also offers four Offset Mapping options for the players. Offset Mapping 
		is a simple way to augment bump mapping to include offset effects (more geometric details). 
		Offset Mapping uses the information about the height of a surface at a single point to 
		offset the texture coordinates either toward or away from the viewer. Height Map Offset 
		and Relief Mapping are disabled for now. 

		Offset Mapping modes
        	Off: No Offset Mapping
		Normal Map Offset (High): Fetch Height Map from Normal Map (z)
		Normal Map Offset (Ultra): Fetch Height Map from Normal Map (reconstruct the z vector)
		Height Map Offset (disabled) : Fetch Height Map from Specular or Diffuse Map (w)
		Relief Mapping (disabled) : Fetch Height Map from Specular or Diffuse Map (w)

		2.2.1 Offset Scale / Bias

			Scale: Offset scale factor.
			Bias: Offset bias range.

	2.3.0 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 quality. The 
		additional performance cost is relatively small.

		2.3.1 Normal Z Vector Scale

			Scale the z vector component of the normal.

	2.4.0 Renormalize Normal Vector
		Renormalize the 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.

3.0.0 3mood site and support

	3mood site for the latest release and option profiles:

	Please, post your suggestions, comments and feedbacks Forum AT nVnews.net:

Doom 3 is registered trademark of id Software.

Copyright (C) 2005 tertsi and skenegroup|net

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.


Tero Ojanpera (aka 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 

Aug 21 2005
tertsi (tertsi AT skenegroup.net)

There are no comments yet. Be the first!