public void AddToRenderList(ObjectRenderer obj) { if (_renderObjects == null) _renderObjects = new List<ObjectRenderer>(); _renderObjects.Add(obj); }
protected override void OnLoad(EventArgs e) { multisampling = new Multisampling(4); GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest); GL.ClearColor(State.ClearColor); GL.Enable(EnableCap.Blend); GL.Enable(EnableCap.Texture2D); GL.Enable(EnableCap.DepthTest); GL.Enable(EnableCap.CullFace); GL.CullFace(CullFaceMode.Back); GL.MinSampleShading(1.0f); Map.New(2048); debug = new ObjectRenderer(); camera = new Camera(); terrain = new TerrainRenderer(camera); water = new WaterRenderer(); light = new Light(); assets = new AssetRenderer(); ui = new Ui(); sky = new SkyRenderer(); shadows = new ShadowBox(); }
public void RemoveFromRenderList(ObjectRenderer obj) { if (_renderObjects != null) { if (_renderObjects.Contains(obj)) _renderObjects.Remove(obj); } }
public void AddToRenderList(ObjectRenderer obj) { if (_renderObjects == null) { _renderObjects = new List <ObjectRenderer>(); } _renderObjects.Add(obj); }
public void RemoveFromRenderList(ObjectRenderer obj) { if (_renderObjects != null) { if (_renderObjects.Contains(obj)) { _renderObjects.Remove(obj); } } }
public MapRenderer(Assets.Scripts.Map.Map map, Transform prefab_trees, Transform prefab_grass, Transform prefab_water, Transform prefab_sand, List <Assets.Scripts.Map.MapObject> listOfMapObjects, ObjectRenderer objectRenderer) { this.map = map; this.listOfMapObjects = listOfMapObjects; this.objectRenderer = objectRenderer; this.prefab_trees = prefab_trees; prefabs = new List <Transform> { prefab_grass, prefab_water, prefab_sand }; }
protected virtual void PrepareComponent() { childAnimator = GetComponentInChildren <Animator>(); animatorWrapper = new AnimatorWrapper(childAnimator); if (objectRenderer == null) { objectRenderer = GetComponentInChildren <ObjectRenderer>(); objectRenderer.InitRenderer(this); } objectRenderer.UpdateHealthBar(1f); objectRenderer.OnParentObjectRespawn(); }
/// <summary> /// Find object on screen /// </summary> /// <param name="findshader">The shader to use for the find</param> /// <param name="glstate">Render state</param> /// <param name="pos">Position on screen of find point</param> /// <param name="size">Screen size</param> /// <returns>Return block list render group and index into it, or null</returns> public Tuple <int, int> Find(GLShaderPipeline findshader, GLRenderState glstate, Point pos, Size size) { var geo = findshader.GetShader <GLPLGeoShaderFindTriangles>(OpenTK.Graphics.OpenGL4.ShaderType.GeometryShader); geo.SetScreenCoords(pos, size); ObjectRenderer.Execute(findshader, glstate); var res = geo.GetResult(); if (res != null) { //System.Diagnostics.Debug.WriteLine("Set Found something"); for (int i = 0; i < res.Length; i++) System.Diagnostics.Debug.WriteLine(i + " = " + res[i]); return(new Tuple <int, int>((int)res[0].W, (int)res[0].Y)); } else { return(null); } }
protected virtual void PrepareComponent() { if (navMeshAgent == null) { navMeshAgent = GetComponent <NavMeshAgent>(); } navMeshAgent.speed = objectData.moveSpeed; childAnimator = GetComponentInChildren <Animator>(); animatorWrapper = new AnimatorWrapper(childAnimator); if (objectRenderer == null) { objectRenderer = GetComponentInChildren <ObjectRenderer>(); objectRenderer.InitRenderer(this); } objectRenderer.UpdateHealthBar(1f); objectRenderer.OnParentObjectRespawn(); }
private string RenderModule(Package package, string moduleName) { var packageContext = new TypeScriptPackageContext(package, new TypeScriptOptions()); var moduleContext = new TypeScriptModuleContext(packageContext, moduleName, new ITypeHandler[] { new StackinoUnoTypeHandler(), new DefaultTypeHandler() }); var enumRenderer = new EnumRenderer(); var objectRenderer = new ObjectRenderer(); var serviceRenderer = new ServiceRenderer(); var stringBuilder = new StringBuilder(); using (var stringWriter = new StringWriter(stringBuilder)) { using (var indentedWriter = new IndentedTextWriter(stringWriter)) { foreach (var @enum in package.Enums.Where(e => e.ModuleName == moduleName)) { enumRenderer.Render(moduleContext, @enum, indentedWriter); } foreach (var @object in package.Objects.Where(e => e.ModuleName == moduleName)) { objectRenderer.Render(moduleContext, @object, indentedWriter); } foreach (var service in package.Services.Where(e => e.ModuleName == moduleName)) { serviceRenderer.Render(moduleContext, service, indentedWriter); } } } stringBuilder.TrimEnd(); using (var resultWriter = new StringWriter()) { using (var indentedWriter = new IndentedTextWriter(resultWriter)) { moduleContext.RenderHeader(indentedWriter); moduleContext.RenderBody(indentedWriter, stringBuilder.ToString()); moduleContext.RenderFooter(indentedWriter); } return(resultWriter.ToString()); } }
private Bitmap GetPreview() { if (obj == null) { return(null); } if (pausePreview) { return(null); } var newObj = GetClonedObject(); var tt = ThingDb.Things[newObj.Name]; var r = new ObjectRenderer(MainWindow.Instance.mapView.MapRenderer); Bitmap img = r.GetObjectImageSpecial(newObj, tt, false); return(img); }
public static ObjectRenderer StartRendering(GameObject characterInstance, RenderSettings renderSettings) { var camera = GetPooledCamera(out var cameraIndex); var cameraTransform = camera.transform; cameraTransform.position = (new Vector3(0, -100, 0) + IndexOffset * cameraIndex); var targetData = new ObjectRenderer { _target = characterInstance, RenderingCamera = camera, _originalPosition = characterInstance.transform.position, _originalRotation = characterInstance.transform.rotation }; var renderTexture = new RenderTexture(renderSettings.TextureWidth, renderSettings.TextureHeight, renderSettings.TextureDepth, RenderTextureFormat.ARGB32) { useMipMap = false, filterMode = FilterMode.Trilinear, name = "ObjectRenderer" }; characterInstance.SetActive(true); characterInstance.transform.position = cameraTransform.TransformPoint(renderSettings.ToCameraOffset); Quaternion look = Quaternion.LookRotation(cameraTransform.position - characterInstance.transform.position); characterInstance.transform.rotation = Quaternion.Euler(0, look.eulerAngles.y, 0); camera.enabled = true; camera.targetTexture = renderTexture; camera.RenderWithoutUIUpdate(); targetData.Texture = renderTexture; return(targetData); }
MathboxRenderer(Machine machine, ScreenManager screenManager) { Machine = machine; Memory = Machine.Mathbox.Memory16; ScreenManager = screenManager; if (!(screenManager.Game is I_Robot.Game game)) { throw new Exception("VideoInterpreter can only be used with I_Robot.Game"); } Game = game; DisplayListManager = new DisplayList.Manager(this); Object = new ObjectRenderer(this); Terrain = new TerrainRenderer(this); // create our scene buffer // this buffer has a z-buffer SceneBuffer = new RenderTarget2D( Game.GraphicsDevice, Game.GraphicsDevice.Viewport.Width, Game.GraphicsDevice.Viewport.Height, false, Game.GraphicsDevice.PresentationParameters.BackBufferFormat, DepthFormat.None, 8, RenderTargetUsage.DiscardContents); // create our two screen buffers // these buffers do not require depth sorting, they are simply raw bitmaps // however the contents need to be preserved when rendering context is reset for (int n = 0; n < ScreenBuffers.Length; n++) { ScreenBuffers[n] = new RenderTarget2D( Game.GraphicsDevice, Game.GraphicsDevice.Viewport.Width, Game.GraphicsDevice.Viewport.Height, false, Game.GraphicsDevice.PresentationParameters.BackBufferFormat, DepthFormat.None, 0, RenderTargetUsage.PreserveContents); } camTarget = new Vector3(0f, 0f, 0f); camPosition = new Vector3(0f, 0f, -1f); double scaleToMonitor = Emulation.Machine.MonitorAspectRatio / Emulation.Machine.NativeAspectRatio; projectionMatrix = Matrix.CreatePerspectiveFieldOfView( MathHelper.ToRadians(45f), (float)(Game.GraphicsDevice.Viewport.AspectRatio / scaleToMonitor), 0.1f, 65536f); // it's important to move the projection matrix down a bit, this matches what I, Robot seems to do projectionMatrix = projectionMatrix * Matrix.CreateTranslation(new Vector3(0, -0.1f, 0)); viewMatrix = Matrix.CreateLookAt(camPosition, camTarget, Vector3.Up); worldMatrix = Matrix.CreateWorld(Vector3.Zero, Vector3.Forward, Vector3.Down); basicEffect = new BasicEffect(Game.GraphicsDevice); basicEffect.Alpha = 1f; basicEffect.VertexColorEnabled = true; // Want to see the colors of the vertices, this needs to be on // Lighting requires normal information which VertexPositionColor does not have // If you want to use lighting and VPC you need to create a custom def basicEffect.LightingEnabled = false; }