WarpZones:
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 28 Feb 2010 19:35:36 +0000 (19:35 +0000)
committerdivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 28 Feb 2010 19:35:36 +0000 (19:35 +0000)
commitf2467d484c38a13d23bb92f91c19a9d6a71f7bec
treef81102ae4083aef7bb490e05e16e18453eeace74
parent43ccc403e08b7b72eb687f2d3700e14ea078d30a
WarpZones:
- entities with a camera_transform function field
  arguments: vector origin, vector angles
  global input: v_forward, v_right, v_up = camera orientation
  return value: new origin
  global output: v_forward, v_right, v_up = new camera orientation
  global output: trace_endpos = origin on "remote side" for culling purposes
- on server, only the trace_endpos return value is used, and '0 0 0' angles are passed, and only the trace_endpos is used (this may be subject to change)
- a warpzone is an above described entity that contains a surface of a shader that uses the keywords dp_camera AND dp_refract
- a camera is an above described entity that contains a surface of a shader that JUST uses the keyword dp_camera
- in case of a camera, preferably the camera_transform function shall not use the input values (except for use for certain special effects)
- rendering of these warpzones is not recursive (yet)
- the warpzones do not have any impact on gameplay - QC support code is needed both on client and server
- example support code will be committed to Nexuiz SVN
- the interface is not stable yet and may be subject to change

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10035 d7cf8633-e32d-0410-b094-e92efae38249
16 files changed:
cl_screen.c
csprogs.c
csprogs.h
gl_rmain.c
gl_rsurf.c
model_brush.c
model_brush.h
model_shared.c
model_shared.h
progsvm.h
prvm_edict.c
quakedef.h
r_shadow.c
render.h
sv_main.c
sv_phys.c