This article's documentation is for anything that uses the Source engine. Click here for more information.

func_areaportalwindow

From Valve Developer Community
Jump to navigation Jump to search
English (en)Translate (Translate)
Toolsareaportal.gif

func_areaportalwindow is a brush entity available in all Source Source games.

Class hierarchy
CFuncAreaPortalWindow
CFuncAreaPortalBase
CBaseEntity
func_areaportalwindow.cpp
An example of its use on d2_coast_09Half-Life 2. When the player is close to the window, the entity is inactive and the player can see through the window. When the player backs up, the objects outside are culled from the PVS and replaced with a hazy low-res texture.

It creates an areaportal that automatically closes as the camera moves away, fading a second, opaque brush in to fill the gap.
It still functions like a regular areaportal, which culls the props that are not visible through it, even if the areaportal is fully open.

A func_areaportal_window that hides interior geometry by turning black at a distance.


Usually a tools/toolsblack texture, or the the dev/dev_window (in some games dev/dev_windowportal) texture is used for the func_brush entity that will be shown.
Toolsblack is simple, as it just hides the world behind it entirely, while dev_window and dev_windowportal show the nearest env_cubemap. Which creates the illusion that you can still see the world behind the areaportal.

This nearest cubemap will be on the same side as where you're looking from. Meaning you'll see the outside cubemap when looking into a window, and the inside cubemap when looking out.
Due to this, you may end up seeing an object from the outside projected onto the areaportal's func_brush from certain angles, making it appear as if it was inside the room. Therefore you may want to modify the env_cubemap's "Brush faces" option to deliberately assign the outside face to the inside cubemap and vice versa. However, since this texture can only be seen when far away, it will unlikely be any real issue.

You can also use func_areaportalwindow with its func_brush inside a func_instance. The linkage between portal and brush will be kept through all instances. However, env_cubemaps inside instances do not work properly, so you can not link up brush faces if you wanted to do that.

Icon-Bug.pngBug: The dev/dev_window texture has to be on both sides of the brush, combining it with any other texture (except nodraw) will result in rendering glitches (objects popping in and out of the PVS depending on player position and view angle).
Seemingly not an issue in Left 4 Dead 2.  (tested in: Half-Life 2)


Keyvalues

Name (targetname) <string>
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Rendered Window (target) <targetname>
The brush entity that fills the gap left by the portal when closed.
Fade Start Distance (FadeStartDist) <integer>
Distance that the fade into the Rendered Window brush entity begins. The further back the player views, the more visible the brush entity will be.
Fade End Distance (FadeDist) <integer>
Distance at which the Rendered Window is fully visible, and the portal closes.
Translucency limit (TranslucencyLimit) <normal>
Prevents the Rendered Window brush from ever going completely transparent. Useful if your rendered window uses an opaque glass material.
Foreground bmodel (BackgroundBModel) <targetname>
Optional brush entity that is drawn after the fading brush model. This model should have alpha in its textures so you can see through it.

Inputs

SetFadeStartDistance <integer>
Sets Fade Start Distance.
SetFadeEndDistance <integer>
Sets Fade End Distance.

See also