DLSetups.c DisplayList Setups Depend on Object Type, Prop Guard or Gun. These are applied to each part of an object at runtime and can be overridden. loading the next part will use these values once more. GeometryMode is not in setup and is persistent accross parts. 7F072A0C Read Displaylist 18 Model Type 7F072A1C Read Displaylist 18 Model Type 7F072A24 Check model type 1 7F072A2C Call to do model type 1 7F070F80 7F072A40 Check model type 3 7F072A48 Call to do model type 3 7F071030 7F072A5C Check model type 4 7F072A64 Call to do model type 4 7F071B44 7F072A78 Check model type 2 7F072A80 Call to do model type 2 7F072644 7F0727F8 Read Displaylist 04 Model Type A1 is primary = 1, secondary = 0 Inside the T8 or whatever temporary register indicates gun or not gun (0 = gun, or UseZ = 1), for different render mode Bool UseZ //guns = false Bool Model Type 0: NoSetup. type 0 Has No DL Setup and will use whaterver is currently set. Model Type 1: 1Cycle No Sec E700000000000000 pipesync() BA00140200000000 CycleType(1c) if UseZ B900031D00552078 SetRendermode(AA_ZB_OPA_1) //cin ain cmem amem else B900031D00552048 SetRendermode(AA_OPA_1) //cin ain cmem amem end if FC121824FF33FFFF SetCombine(MODULATERGBA) No Secondary Model Type 2: 2Cycle No Sec E700000000000000 pipesync() BA00140200100000 CycleType(2c) if UseZ B900031D0C192078 SetRendermode(AA_ZB_OPA_2) // cin 0 cin 1 //colour only else B900031D0C192048 SetRendermode(AA_OPA_2) // cin 0 cin 1 //colour only end if FC26A0041F1093FF SetCombine(TRILERP, MODULATERGBA) No Secondary Model Type 3: GunLighting - Reduced Secondary Commands (guns) This Type Uses Vertex Alpha for Secondary Surfaces and uses the FOG Alpha value for applying Fog/"Lighting". Primary E700000000000000 pipesync() BA00140200100000 CycleType(2c) F800000000000026 SetFogColor(0,0,0,38) if dltype = full if guard FB0000005A0000FF SetEnvColor(90,0,0,255) FC1598045FFEDBF8 SetCombine(((Texel0-Env)*ShadeA+Env) ((Texel0-Env)*Shade+Env), MODULATERGB_DECALA) else if prop FB000000FFFFFFFF SetEnvColor(255,255,255,255) FA00000000000000 SetPrimColor(0,0,0,0) FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) endif else FC26A0041F1093FF SetCombine(TRILERP, MODULATERGBA) endif if UseZ B900031DC4112078 SetRendermode(AA_ZB_OPA_StanFOG_2) else B900031DC4112048 SetRendermode(AA_OPA_StanFOG_2) //acvg endif Secondary if UseZ B900031DC41049D8 SetRendermode(AA_Zcmp_XLU_StanFOG_2) else B900031DC41041C8 SetRendermode(AA_OPA_StanFOG_2)//FcBl ClrOnCvg endif Model Type 4: Normal Fog/Lighting object This Type Uses Vertex Alpha for Secondary Surfaces and uses the FOG Alpha value for applying Fog/"Lighting". Primary E700000000000000 pipesync() BA00140200100000 CycleType(2c) F800000000000026 SetFogColor(0,0,0,38) if dltype = full if guard FB0000005A0000FF SetEnvColor(90,0,0,255) FC1598045FFEDBF8 SetCombine(((Texel0-Env)*ShadeA+Env) ((Texel0-Env)*Shade+Env), MODULATERGB_DECALA) else if prop FB000000FFFFFFFF SetEnvColor(255,255,255,255) FA00000000000000 SetPrimColor(0,0,0,0) FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) endif else FC26A0041F1093FF SetCombine(TRILERP, MODULATERGBA) endif if UseZ B900031DC4112078 SetRendermode(AA_ZB_OPA_StanFOG_2) else B900031DC4112048 SetRendermode(AA_OPA_StanFOG_2) //acvg endif Secondary E700000000000000 pipesync() BA00140200100000 CycleType(2c) F800000000000026 SetFogColor(0,0,0,38) if dltype = full if guard FB0000005A0000FF SetEnvColor(90,0,0,255) FC1598045FFEDBF8 SetCombine(((Texel0-Env)*ShadeA+Env) ((Texel0-Env)*Shade+Env), MODULATERGB_DECALA) else if prop FB000000FFFFFFFF SetEnvColor(255,255,255,255) FA00000000000000 SetPrimColor(0,0,0,0) FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) endif else FA00000000000000 SetPrimColor(0,0,0,0) FC26A0041F1093FB SetCombine(TRILERP, MODULATERGB_ADDPRIM_A) endif if UseZ B900031DC41049D8 SetRendermode(AA_Zcmp_XLU_StanFOG_2) else B900031DC41041C8 SetRendermode(AA_OPA_StanFOG_2)//FcBl ClrOnCvg endif ============================= runtime findings prior to ASM ============================== Gun First Person Model Type 0 - Primary only Primary 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000000 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000000 17 Pipeline Mode:00000001 Combiner:00121824 FF33FFFF RenderMode:005049D8 Model Type 1 - Primary only Primary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000000 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000000 17 Pipeline Mode:00000001 Combiner:00121824 FF33FFFF RenderMode:00552048 Model Type 2 - Primary only Primary 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000000 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FF RenderMode:0C192048 Model Type 3 Primary 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000000 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FF RenderMode:C4112048 Secondary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000002 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00000000 00000000 RenderMode:C41041C8 Model Type 4 Primary 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000000 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FF RenderMode:C4112048 Secondary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000002 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FF RenderMode:C41041C8 Prop Model Type 0 - All primary Primary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1FFC93FC RenderMode:C8102048 Model Type 1 - All primary Primary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000000 17 Pipeline Mode:00000001 Combiner:00121824 FF33FFFF RenderMode:00552078 Model Type 2 - All primary Primary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FF RenderMode:0C192078 Model Type 3 Primary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FB RenderMode:C4112078 Secondary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00000000 00000000 RenderMode:C41049D8 Model Type 4 Primary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FB RenderMode:C4112078 Secondary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FB RenderMode:C41049D8 Guard Model Type 0 - Drew all primary no secondary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1FFC93FC RenderMode:C8102048 Model Type 1 - Drew all primary no secondary Primary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000000 17 Pipeline Mode:00000001 Combiner:00121824 FF33FFFF RenderMode:00552078 Model Type 2 - Drew all primary no secondary Primary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FF RenderMode:0C192078 Model Type 3 - Drew primary/secondary Primary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00159804 5FFEDBF8 RenderMode:C4112078 Secondary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000002 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00000000 00000000 RenderMode:C41049D8 Model Type 4 - Drew all primary then all secondary Primary 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00159804 5FFEDBF8 RenderMode:C4112078 Secondary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000000 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00159804 5FFEDBF8 RenderMode:C41049D8 Head Model Type 0 Primary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000002 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00000000 00000000 RenderMode:C8102048 Model Type 1 Primary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000002 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000000 17 Pipeline Mode:00000001 Combiner:00121824 FF33FFFF RenderMode:00552078 Model Type 2 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000002 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:0026A004 1F1093FF RenderMode:0C192078 Model Type 3 Primary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000002 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00159804 5FFEDBF8 RenderMode:C4112078 Secondary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000002 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00000000 00000000 RenderMode:C41049D8 Model Type 4 Primary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000000 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000002 10 Texture LOD:00000000 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00159804 5FFEDBF8 RenderMode:C4112078 Secondary 00 Blend Mask:00000000 04 Alpha Dither:00000002 06 RGB Dither:00000001 08 Combine Key:00000000 09 Texture Conversion:00000006 0C Texture Filter:00000002 0E Texture LUT:00000003 10 Texture LOD:00000001 11 Texture Detail:00000000 13 Texture Perspective:00000001 14 Cycle Type:00000001 17 Pipeline Mode:00000001 Combiner:00159804 5FFEDBF8 RenderMode:C41049D8 ===================== original test doc ====================== Prop Type: For 1-4 GeometryMode Should NOT have FOG enabled, but requires Z, Shade and texture Enabled. GeometryMode Fog waists processing time and overwrites Vertex Alpha. Since Rendermode does not use this Value for Fog (FOG_SHADE) it should be dissabled to preserve vertex alpha (SHADE). 1 Basic1 or RGBA-AA_ZB_OPA_SURF1 1Cycle Combiner CC1 (Tex0 - 0) * Shade + 0 AC1 (Tex0 - 0) * Shade + 0 RenderMode AA_ZB_OPA_Surf This Type can use Vertex Alpha for Secondary Surfaces and has No FOG. 2 Basic2 or TRI-RGBA-AA_ZB_OPA_SURF2 2Cycle FOG = 00000000 Combiner C1 TRILERP CC2 (Comb - 0) * Shade + 0 AC2 (Comb - 0) * Shade + 0 RenderMode PASS AA_ZB_OPA_Surf2 This Type Uses Vertex Alpha for Secondary Surfaces. This Geometry will Not Fog or scan Stan Colour. 3 Foggable (Alpha Bias) or TRI-RGBA+PA-FP_AA_ZB_OPA_SURF2 2Cycle EnvCol = ffffffff PrimCol = 00000000 FOG = 00000019 Combiner C1 TRILERP CC2 (Comb - 0) * Shade + 0 AC2 (Comb - 0) * Shade + Prim RenderMode FogPRIM AA_ZB_OPA_Surf2 This Type Uses Vertex Alpha for Secondary Surfaces. It adds any value in PrimCol to Alpha. Uses the FOG Alpha value for applying "Lighting" based on StanCol (here StanCol must have been E6). The Presence of EnvCol in this Type alone suggests its the only type that will be transparent in watch which of course is true. 4 Foggable or TRI-RGBA-FP_AA_ZB_OPA_SURF2 2Cycle FOG = 00000000 Combiner C1 TRILERP CC2 (Comb - 0) * Shade + 0 AC2 (Comb - 0) * Shade + 0 RenderMode FogPRIM AA_ZB_OPA_Surf2 This Type Uses Vertex Alpha for Secondary Surfaces and uses the FOG Alpha value for applying Fog/"Lighting". Gun Type: For All DLSetups below GeometryMode should NOT have Fog or z enabled, but requires Shade and texture Enabled. 1 watch/hand 1Cycle Combiner CC (Comb - 0) * Shade + 0 AC (Comb - 0) * Shade + 0 RenderMode AA_OPA_Surf 2 watch/inhand 2 Cycle Combiner C1 TRILERP CC2 (Comb - 0) * Shade + 0 AC2 (Comb - 0) * Shade + 0 RenderMode PASS AA_OPA_Surf2 No Fog Blending, Just CC result. 3+4 watch - needs correcting 2Cycle fog (f8) 00000007 Combiner C1 TRILERP CC2 (Comb - 0) * Shade + 0 AC2 (Comb - 0) * Shade + 0 RenderMode Fog_AIn AA_OPA_Surf2 Fog from CCAlpha (Including textures) Alpha Gradients result in FOG intensity gradients. 1Bit Alpha Textures or opaque Textures result in Pure Fog Colour. This cannot be right. Guns in watch show Textures with colour and are made transparent by EnvCol. 3+4 inhand 2Cycle fog (f8) 00000007 Combiner C1 TRILERP CC2 (Comb - 0) * Shade + 0 AC2 (Comb - 0) * Shade + 0 RenderMode FogPRIM AA_OPA_Surf2 Fog/"Lighting" From StanCol. Draw Distance (Game Config, not model) 600cm Box to lines in 2nd area tunnel mouth 1334cm Alarm to Pillar 1 1/2 2826cm Boxes through wire gate to pillar 3 3430cm Alarm Guy along UV repeat to "4" on wall, to crates through wire gate 8230cm Corner Tunnel to crate barricade 8400cm Padlock gate to tower1 4717cm from tower1 to bollard on pier1 5412cm Tower1 to tower2 6258cm Tower3LowerFront to bollard(near) on pier1 7673cm Tower3LowerBack to bollard(near) on pier1 9060cm pier2 North to bollard(near) on pier1 9485cm Pier2 Bollard1 to bollard(near) on pier1 11186cm opposit corners of piers. Float 16bit 32bit result (32bit is assumed to be INT(num/10,000)) 4435DD86*= 727.461 17461 11443 8000cm 44CF9000 = 1660.5 17165 11544 1600cm 43FA4000 = 500.5 17402 11404 1600cm 462BE200 = 11000f 17963 11772 1600cm 01F4 = 0 500 327 600cm pop 2AF8 = 0 11000 7208 600cm pop 43200000 = 160F 17184 11261 1162cm 47479C00 = 51100f 18247 11958 >11186cm 47A0BE00 = 82300f 18336 12017 >11186cm 7735D560 = 3688021447437433500000000000000000.000000 30517 20000 >11186cm These results are really odd... the end result has to be that it is afterall a float but its some sort of multiplier. the minimum draw distance is 600 and the bounding volume is based on this value. 500f is the lowest for the box to not be volume culled after the centeroide leaves the screen. ------------------------------ Aha! ok, I think I have a working theory about what Draw Distance actually is and why it works the way it does. I beleve its a Bounding Volume of spherical shape. You were right, it was a float and here is how I think it works. First it takes its value as a radius, eg, 727 is a sphere of dia of 1454. Then it takes this number and scales it by 100 giving a new radius of 72700. These numbers are then scaled by the Model Scale for use in level. The first number defines a volume which must be on-screen for the object to draw. the second is the far cull distance Transparency fading is based on a fraction of the Outer number. the bigger the draw distance the longer the transition period (smoother) the smaler the more poping happens. experiments show possibly a value if .9 if Dist >> (((DrawDist*100)/modscale)*0.9 then Alpha = 1/((((DrawDist*100)/modscale)*0.9)/(Dist -(((DrawDist*100)/modscale)*0.9)) hopefully that equation works but you get the idea Note: Look for View Fustrum Bounding sphere, possibly just farfog. Note2: Re-do table using ingame TestMapPos Confirmed that level.scale nor level.visscale have any effect on objects. - redo probable code level.visscale seems to occur after level.scale in that with the level half the size, the mountians were the same fog intensity as before. if Type = Door OR window then scale with level //as get smaller (to fit in portal) fade+clip distance decreases also. FarFog = Distance in cm / level.VisScale, eg 15000/1 = 150m to clipping, 15000/0.2 = 750m (theoretically Never clip since > 65535) level.visscale is just a farfog scale whats the point... Ah, now I see. Manually setting FarFog to 75000 causes large areas to crash the game while in smaller rooms causes a "fisheye-lense" effect in a small square window. gun and hud un-affected. Setting farfog to 65000 causes a fullscreen fisheye lense effect (Not ture fisheye by the way, just odd round edges of screen) Setting FarFog to 32000 shows screen normal, however dam still crashes. setting farfog to 8000 shows screen normal, with visscale at 0.125 farclip distance is 64000 but interestingly "near Fog" starts at 8000, this number is a coincedence since at higher values the near fog is closer. further setting blendmult to 2.5 brings nearfog to 3000 setting blendmult to 0.625 brings nearfog to 600 Perhaps Nearfog = (FarFog * Level.scale)*BlendMult = (8000 * 0.125) * 2.5 = 2500 Pretty close = (8000 * 0.125) * 0.625 = 625 Again pretty close = (65000 * 1 ) * 5 = 325000 ... way off... overflow makes -2680 or 62856 = (32000 * 0.5)* 5 = 80000 ... way off... AHA! maybe this is why these crashed... nearfog exceded farfog, or overflow makes 14494 = (15000 * 0.2)* 5 = 15000 correct FarFog and VisScale need to be ballenced, while 32000 @ VisScale 1 is the same as 16000 @ VisScale 0.5, VisScale adds a bias to the z-Buffer. This means that as VisScale decreases the Near z-buffer looses accuriacy while the far z-buffer increases accuriacy. This is seen in example with the alarm on the wall. At VisScale 0.2, the alarm remains on-top, but at 0.1 the alarm starts to fight with the wall when within 1 meter of the wall. ------------------------------- Truck Bounding Volume Radius = 4589 *1.09765625= 5037 obrv ob*.2 fmult fobs | fade f-c clip 8888 2076 6666 1557 0 | 4444 1038 3333 778 600 | 2222 519 1666 389 1200 | 2500 5000 2222 519 1666 389 0 | 1111 259 833 194 0 | 3600 1400 5000 1000 N/A 750 N/A 0 | 3500 1076 4576 crate Bounding Volume Radius = 727 *1.296875= 943 obrv ob*.2 fmult fobs | fade F-Clip clip 8888 2076 6666 1557 0 | 1000 7600 8 4444 1038 3333 778 600 | 1000 3900 4 2222 519 1666 389 1200 | 500 2000 2 2222 519 1666 389 0 | 1000 3900 ??????????? 1111 259 833 194 0 | 683 254 937 1 1000 N/A 750 N/A 0 | 643 233 876 Drum Bounding Volume Radius = 745 This table is invalid as 2 drums were 2 scales... obrv ob*.2 fmult fobs | fade clip 8888 2076 6666 1557 0 | 4444 1038 3333 778 600 | 3400 2222 519 1666 389 1200 | 850 2500 2222 519 1666 389 0 | 800 2300 1111 259 833 194 0 | 1000 N/A 750 N/A 0 | Alarm Bounding Volume Radius = 208 obrv ob*.2 fmult fobs | fade f-c clip 8888 2076 6666 1557 0 | 450 1700 4444 1038 3333 778 600 | 300 1300 2222 519 1666 389 1200 | 200 1400 2222 519 1666 389 0 | 300 1300 1111 259 833 194 0 | 110 80 190 1000 N/A 750 N/A 0 | 124 51 175 Later results show that OBRV could almost be divided by 111 and give the cull distance (Effectivly ((Object_Bounding_Volume_Radius/Model.Scale)*object.scale)*(obrv*111) ) FMult is the same as above except defines the distance from object center to start fade. This further means that OBRV or as currently defined in PG, MaxObjVis, should be named, Object Cull Distance Multiplier