public void ProcessCollision(Tags.Sbsp.TagBsp bsp) { float c = 0xfffffffffffff; Vector3 point; float[] UV; short LIx; float t; for (int i = 0; i < bsp.GetLightMapCount; i++) { Prometheus.Core.Tags.Sbsp.BSP_LIGHTMAP tmp = bsp.GetLightMap(i); if (tmp.RayAABBTest(this.pos, this.dir, out point, out UV, out LIx, out t)) { if (LIx != -1) { if (t < c) { MdxRender.lightmapDebugger.AddIntersectPoint(point); MdxRender.lightmapDebugger.AddRay(pos, point); Render.SetTexel(UV[0], UV[1], this.color, LIx); this.pos = point; this.dir = this.GetNewDirection(); } } } } }
public Scene(Tags.Sbsp.TagBsp bsp) { this.bsp = bsp; this.scenery = new Model3D[0]; this.lights = new LightSource[0]; }