Main

Technology Test Guide

Welcome to Technology Test Guide for the Serious Engine. The Technology Test level is intended for testing compatibility of IHV products, primarly 3d cards and accompanying OpenGL drivers, with the game.

This small guide will help you navigate through the Technology Test easily.

To start the Technology Test level now, press . After pressing the button, please wait some time for the application to start.

When application is started, you can start exploring Technology Test step by step


Step by step

Step by Step Testing

Here, we provide you with detailed explanation on how things should look like and what details to pay attention to.
The step by step walkthrough of the Technology Test level is organized the same way as the actual rooms in the level. Each room is intended for testing one feature or a group of related features. Each section consists of a GO button, one or more screen shots and a short explanation of what to look for.
When you click on the GO button in the guide, you will switch to a running instance of the Serious Sam application and be instantly teleported to the right room. You may freely use the Alt-Tab key combination to switch between the game and the guide. Note that if you want to run Serious Sam in full screen, you have to press Alt-Enter after switching to Serious Sam.
You can manually jump to any of the predefined positions by executing console command cht_iGotoMarker=xx where xx is number of wanted marker. The position number of each marker is shown next to GO button.

When you start the technology test, you are first spawned in the middle between two temples. On your left is Temple of Models and on your right Temple of Effects.

Temple of Models presents basic rendering modes used for dynamic models:
  • Diffuse shading

  • Specular shading

  • Environment mapping

  • Bump mapping

  • Translucency and transparency

  • Multiply and add blending

  • Particles

  • Models in fog

Temple of Effects presents various other effects used for architecture rendering and other special effects:
  • Basic texturing

  • Texture layers and blending modes

  • Mirrors and reflective surfaces

  • Portals

  • Haze

  • Volumetric fog

  • Procedural textures

  • Lens flares

  • Animating lights


Temple of Models

Diffuse shading

(Position 1)

This is the simplest rendering mode for models. Plain texture mapping and diffuse (gouraud) shading. Effective point light is on the upper right and there is a significant ammount of ambient light.
Also pay attention to the soft model shadow on the floor under the teapot.

Total rendering passes: 1

Specular shading

(Position 2)

This is usual rendering mode used for metalic, glass, wooden and plastic models. Besides texture mapping and diffuse shading, there is also a specular component of light, which is done by additional rendering pass, and not only calculated in vertices, so the specular highlight moves smoothly across polygons.

Total rendering passes: 2

Environment mapping

(Position 3)

Environment map is used for metalic and glass objects. The effect is here used together with texture mapping, diffuse shading, and specular shading. Mapping coordinates are not generated by usual GL_SPHERE_MAP, but are rather custom calculated for full 360 degrees view independent environment mapping. The environment map is generated using all 6 environment views from the object position.

Total rendering passes: 3

Bump mapping

(Position 4)

This is 3 pass bump mapping that takes in account viewer position, light position and point normals of the object. That way, specular highlighting of the bumps is generated using common functions of rendering hardware. No special bump-mapping rendering chips are required.
Additional pass is made for the specular shading.

Total rendering passes: 4

Translucency and transparency

(Position 5)

Translucency is acomplished by usual alpha blending methods.
Model has smooth transition between opaque and transparent areas. That is, object is blured and blended into the background.

Transparency is done by alpha testing.
Limit between the opaque object and the background is sharp, but rounded, not jagged.

Multiply and add blending

(Position 6)

Blending by multiplication and adding is used for some special effects.

Multiply mode darkens the background behind model. Note that the left object in the room (multiplication) is barely visible when you enter the room. That is because it darkens the background and is therefore best viewed on bright background. Approach from a different angle to observe it better.

Add mode brightens the background behind model. The right object is rendered by add-blending.

Particles

(Position 7)
Here you can see particle effects. Fountain on the left is alpha-blended, smoke in the middle is multiplied, and the stardust effect on the right is added to the background.

Models in fog

(Position 8)
Finally, layered fog can be applied on all kinds of models. All models behave similary when in fog. When approached from far, they smoothly appear. When watched from above (from the room entrance), lower part of models is in fog and the upper part is not.


Temple of Effects

Basic texturing

(Position 11)

This demonstrates basic texturing facilities used in texturing world architecture. The room contains two boxes. Both boxes have their front faces textured by same texture (u/v coordinate axes), but with different parameters.
Left box texture is colored blue and wrapped (tiled), while the right one is colored red and clamped.

Texture layers and blending modes

(Position 12)

Here we test multiple texture layers and different blending modes. The three walls of this room have two textures each. First texture is always same as the base texture in all rooms, while the second is blended with a different mode each.

Left wall has the so called 'shade' mode. That is src*dst*2 (implemented as src*dst+dst*src). This mode is the most used mode for multilayered texturing, and is also used for lightmaps on most world polygons.
Front wall has its second texture alpha blended.
The right wall has its second texture added to the first texture.

Mirrors and reflective surfaces

(Position 13)

Whole floor is a reflective surface. Additional user clip plane is used here.

Portals

(Position 14)

Portals are similar to mirrors. Additional user clipping plane is used here too.

Haze

(Position 15)

This is just a very light, yellow-orange haze, local to this room. Haze does not use OpenGL fog, but rather an additional rendering pass to apply custom fogging equation.

Volumetric Fog

(Position 16)

Vertical wall of greenish fog is splitting the room in the middle. Walk through it. Opposite side of the room should be unfogged too. The fog is limited to the middle of the room. Again, OpenGL fog is not used, this a separate rendering pass.

Procedural Textures

(Position 17)

Procedural textures are generated in host memory and uploaded each frame for animation. Pool in the middle of the room has water waves effect on the water surface polygon. In the left far corner there is a fire burning, you can examine it from close. In the right far corner is a lightning effect.
You can also examine animating water caustics effect by diving in the pool.

Lens Flares

(Position 18)

Here you can test lens flares with reflections. Lens flares use z-buffer reading, and should smoothly dissapear when hidden behind a column. There are four columns in this room for testing that.

Animating Lights

(Position 19)

This test heavily stresses texture uploading facilities. There are three animating lights, and most shadow maps in the room are changed on every frame.
Left light is a very fast strobe, middle light is smoothly changing its color, while the right one is pulsating.


Console

Console Usage

Standard game console is invoked by pressing the Tilde (~) key, or F1 key (if your keyboard does not have the Tilde key). You can edit the console line by standard editing keys, use history by pressing Arrow Up or Arrow Down, or use word completion by pressing Tab.
Note that the console syntax is C-like. That is, you have to append brackets to function names when calling functions, and you can use mathematical expresions. In the same spirit, statement separator is semicolon, but you don't have to enter it manually. It is automaticaly appended when you press return. Remember that, though, if you intend to write something in the startup script or key bindings.

Some console commands that can be useful for testing are listed here. You can always use ListSymbols() function in the console to get list of all variables and functions with descriptions.

Interface rendering
hud_bShowWeapon | Set this to 0 to disable rendering held weapon in the first person view.
hud_bShowInfo | Set this to 0 to disable drawing status line (head up display).
Graphics adjustments
GfxInfo() | Prints information on current state of graphics library and active OpenGL driver.
ogl_bUseMultitexture ogl_bUseCompiledVertexArrays ogl_bFastRendering ogl_bFastStateChange ogl_bFastUploading | With these variables you can disable some advanced optimizations that might not work on your driver.
ogl_iVSyncsToWait | Number of vertical retraces to wait on each buffer swapping. Disables vertical synchronization when set to 0. Requires WGL_EXT_swap_control.
RefreshTextures() | Execute this function to reload all textures and rebind them to the OpenGL driver again. Required for some texture settings to take effect.
tex_iNormalQuality tex_iEffectQuality tex_iAnimationQuality tex_iNormalSize tex_iEffectSize tex_iAnimationSize tex_iDithering tex_bDitherEffect shd_iStaticQuality shd_iDynamicQuality shd_iStaticSize shd_iDynamicSize shd_iDithering shd_bDitherDynamic shd_bAllowDynamic shd_bNoDynamicMipmaps shd_iStaticBlurFilter shd_iDynamicBlurFilter | These control quality of texture maps and shadow maps. They can be used to adjust performance by reducing overhead for CPU and/or graphics card. Usually, RefreshTextures() is required for a change to take effect.
gfx_iRenderLensFlares mdl_fLODMul mdl_fLODAdd mdl_bRenderBump mdl_bRenderSpecular mdl_bRenderReflection wld_bTextureLayer2 wld_bTextureLayer3 wld_bRenderMirrors wld_fDetailRemovingBias | These control rendering options that can be adjusted to lower the fill rate and/or triangle throughput. Usually, RefreshTextures() is required for a change to take effect.
Cheats
cht_iGoToMarker | Set this to a marker position number and you will be instantly teleported to the given position. This can be used instead of this guide for fast step-by-step exploraion.


Controls

Keyboard and Mouse Controls

Basic keyboard and mouse controls that are bound by default are explained here. If you wish to change those, please feel free to edit the script file Controls\Controls0.ctl located in the directory where you have installed Serious Sam Technology Test.

Mouse movement is set as commonly used by most people. That is, moving mouse left/right rotates player respectively and moving mouse up/down, looks up/down. Base set of keyboard commands includes:

Move forward | W or Arrow Up
Move backward | S or Arrow Down
Turn left | Arrow Left
Turn right | Arrow Right
Strafe left | Q or A
Strafe right | E or D
Jump/Swim up | Space or R
Dodge/Swim down | F

Besides the in-game controls, there are following general keyboard shortcuts that cannot be rebound:

Activate menu | Escape
Activate console | ~ (Tilde) or F1
Pause game | Pause
Switch fullscreen/windowed mode | Alt-Enter


Go Error

Error jumping to position in application.

Failed to command the application to teleport player to the desired position. Probable reasons include:
  • Application is not installed properly - if the application is not started yet, check your installation directory for containing the file SeriousSam.exe in the Bin subdirectory.

  • There is a problem with the HTML help viewer - make sure that you have html help viewer version 1.2 installed

Anyway, please try to launch the application manually from the start menu, and/or go to the desired position by entering:

cht_iGoToMarker = <position_number>

 at the in-game console prompt.


Launch Error

Error launching application.

The application cannot be launched. Probable reasons include:
  • Application is not installed properly - check your installation directory for containing the file SeriousSam.exe in the Bin subdirectory.

  • There is a problem with the HTML help viewer - make sure that you have html help viewer version 1.2 installed

Anyway, please try to launch the application manually from the start menu and start Technology Test from the menu.


Menu

You can invoke in-game menu by pressing Escape key at any time.
This is how the menu should look like:

In the Video options submenu of Options menu you can adjust current display mode and base rendering settings. Use arrow keys to move in the menu, and press Return to enter a submenu or to modify currently selected option.