private void Update() { _cameraMapUpdateTimer += Time.deltaTime; if (_cameraMapUpdateTimer > 16) { RemoveDestroyedCameras(); _cameraMapUpdateTimer = 0; } #if UNITY_EDITOR UpdateChanged(); #endif if (_outlineResources != null && _renderers != null && (_outlineSettings.IsChanged || _commandBuffer.sizeInBytes == 0)) { _commandBuffer.Clear(); using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget)) { renderer.Render(_renderers, _outlineSettings.OutlineResources, _outlineSettings); } _outlineSettings.AcceptChanges(); #if UNITY_EDITOR _commandBufferUpdateCounter++; #endif } }
private void Update() { _cameraMapUpdateTimer += Time.deltaTime; if (_cameraMapUpdateTimer > 16) { RemoveDestroyedCameras(); _cameraMapUpdateTimer = 0; } if (_outlineResources != null && _renderers != null) { if (_updateRenderers) { _renderers.Reset(false); } _commandBuffer.Clear(); using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget)) { renderer.Render(_renderers.GetList(), _outlineSettings.OutlineResources, _outlineSettings); } } }
/// <summary> /// Renders all layers. /// </summary> public void Render(OutlineRenderer renderer, OutlineResources resources) { UpdateSortedLayersIfNeeded(); foreach (var layer in _sortedLayers) { layer.Render(renderer, resources); } }
private void FillCommandBuffer(Camera camera, CommandBuffer cmdBuffer) { if (_renderers.Count > 0) { using (var renderer = new OutlineRenderer(cmdBuffer, _outlineResources, camera.actualRenderingPath)) { renderer.Render(_renderers.GetList(), _outlineSettings, name); } } }
private void FillCommandBuffer() { _commandBuffer.Clear(); if (_outlineResources && _outlineResources.IsValid) { using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget)) { _outlineLayers.Render(renderer, _outlineResources); } } }
internal void Render(OutlineRenderer renderer, OutlineResources resources) { _settings.SetResources(resources); foreach (var kvp in _outlineObjects) { if (kvp.Key) { renderer.RenderSingleObject(kvp.Value, _settings.OutlineMaterials); } } }
/// <summary> /// Gets cached gauss samples for the specified outline <paramref name="width"/>. /// </summary> public float[] GetGaussSamples(int width) { if (_gaussSmples == null) { _gaussSmples = new float[OutlineRenderer.MaxWidth][]; } if (_gaussSmples[width] == null) { _gaussSmples[width] = OutlineRenderer.GetGaussSamples(width, null); } return(_gaussSmples[width]); }
/// <summary> /// Renders the layers. /// </summary> public void Render(OutlineRenderer renderer, OutlineResources resources) { if (_enabled) { _settings.SetResources(resources); foreach (var kvp in _outlineObjects) { if (kvp.Key && kvp.Key.activeInHierarchy) { renderer.Render(kvp.Value, _settings.OutlineResources, _settings); } } } }
/// <summary> /// Gets cached gauss samples for the specified outline <paramref name="width"/>. /// </summary> public float[] GetGaussSamples(int width) { var index = Mathf.Clamp(width, 1, OutlineRenderer.MaxWidth) - 1; if (_gaussSamples == null) { _gaussSamples = new float[OutlineRenderer.MaxWidth][]; } if (_gaussSamples[index] == null) { _gaussSamples[index] = OutlineRenderer.GetGaussSamples(width, null); } return(_gaussSamples[index]); }
private void FillCommandBuffer() { if (_camera && _outlineLayers && _commandBuffer != null) { _commandBuffer.Clear(); if (_outlineResources && _outlineResources.IsValid) { using (var renderer = new OutlineRenderer(_commandBuffer, _outlineResources, _camera.actualRenderingPath)) { _renderObjects.Clear(); _outlineLayers.GetRenderObjects(_renderObjects); renderer.Render(_renderObjects); } } } }
private void FillCommandBuffer() { _commandBuffer.Clear(); if (_outlineResources && _outlineResources.IsValid) { using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget)) { _outlineLayers.Render(renderer, _outlineResources); } } _changed = false; #if UNITY_EDITOR _commandBufferUpdateCounter++; #endif }
private void Update() { if (_outlineResources != null && _renderers != null) { _camerasToRemove.Clear(); if (_updateRenderers) { _renderers.Reset(false, _layerMask); } foreach (var kvp in _cameraMap) { var camera = kvp.Key; var cmdBuffer = kvp.Value; if (camera) { cmdBuffer.Clear(); if (_renderers.Count > 0) { using (var renderer = new OutlineRenderer(cmdBuffer, _outlineResources, camera.actualRenderingPath)) { renderer.Render(_renderers.GetList(), _outlineSettings, name); } } } else { cmdBuffer.Dispose(); _camerasToRemove.Add(camera); } } foreach (var camera in _camerasToRemove) { _cameraMap.Remove(camera); } } }
private void FillCommandBuffer() { if (_outlineResources && _outlineResources.IsValid) { using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget)) { for (var i = 0; i < _outlineLayers.Count; ++i) { if (_outlineLayers[i] != null) { _outlineLayers[i].Render(renderer, _outlineResources); } } } } else { _commandBuffer.Clear(); } _changed = false; }
private void Update() { _cameraMapUpdateTimer += Time.deltaTime; if (_cameraMapUpdateTimer > 16) { RemoveDestroyedCameras(); _cameraMapUpdateTimer = 0; } #if UNITY_EDITOR UpdateChanged(); #endif if (_outlineResources != null && _renderers != null && _outlineSettings.IsChanged) { using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget)) { renderer.RenderSingleObject(_renderers, _outlineSettings.OutlineMaterials); } _outlineSettings.AcceptChanges(); } }
public void Init() { _commandBuffer = new CommandBuffer(); _renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget); }
private void UpdateGaussSamples() { OutlineRenderer.GetGaussSamples(_width, _gaussSamples); }