public override void OnEnable() { base.OnEnable(); if (m_mesh == null) { return; } if (m_data_transfer_mode == DataTransferMode.Buffer && !SystemInfo.supportsComputeShaders) { Debug.Log("BatchRenderer: ComputeBuffer is not available. fallback to Texture data transfer mode."); m_data_transfer_mode = DataTransferMode.Texture; } if (m_data_transfer_mode == DataTransferMode.TextureWithPlugin && !BatchRendererUtil.IsCopyToTextureAvailable()) { Debug.Log("BatchRenderer: CopyToTexture plugin is not available. fallback to Texture data transfer mode."); m_data_transfer_mode = DataTransferMode.Texture; } m_instance_data = new InstanceData(); if (m_data_transfer_mode == DataTransferMode.Buffer) { m_instance_buffer = new InstanceBuffer(); } else { m_instance_texture = new InstanceTexture(); } ResetGPUData(); }
public virtual void OnEnable() { if (m_mesh == null) { return; } m_trans = GetComponent <Transform>(); m_materials = new List <Material>(); m_expanded_mesh = BatchRendererUtil.CreateExpandedMesh(m_mesh, out m_instances_par_batch); m_expanded_mesh.UploadMeshData(true); int layer_mask = m_layer_selector.value; for (int i = 0; i < 32; ++i) { if ((layer_mask & (1 << i)) != 0) { m_layer = i; m_layer_selector.value = 1 << i; break; } } if (m_data_transfer_mode == DataTransferMode.Buffer && !SystemInfo.supportsComputeShaders) { Debug.Log("BatchRenderer: ComputeBuffer is not available. fallback to TextureWithMesh data transfer mode."); m_data_transfer_mode = DataTransferMode.TextureWithMesh; } if (m_data_transfer_mode == DataTransferMode.TextureWithPlugin && !BatchRendererUtil.IsCopyToTextureAvailable()) { Debug.Log("BatchRenderer: CopyToTexture plugin is not available. fallback to TextureWithMesh data transfer mode."); m_data_transfer_mode = DataTransferMode.TextureWithMesh; } }
public override void OnEnable() { base.OnEnable(); if (m_mesh == null) return; if (m_data_transfer_mode == DataTransferMode.Buffer && !SystemInfo.supportsComputeShaders) { Debug.Log("BatchRenderer: ComputeBuffer is not available. fallback to Texture data transfer mode."); m_data_transfer_mode = DataTransferMode.Texture; } if (m_data_transfer_mode == DataTransferMode.TextureWithPlugin && !BatchRendererUtil.IsCopyToTextureAvailable()) { Debug.Log("BatchRenderer: CopyToTexture plugin is not available. fallback to Texture data transfer mode."); m_data_transfer_mode = DataTransferMode.Texture; } m_instance_data = new InstanceData(); if (m_data_transfer_mode == DataTransferMode.Buffer) { m_instance_buffer = new InstanceBuffer(); } else { m_instance_texture = new InstanceTexture(); } ResetGPUData(); }
public virtual void OnEnable() { if (m_mesh == null) return; m_trans = GetComponent<Transform>(); m_materials = new List<Material>(); m_expanded_mesh = BatchRendererUtil.CreateExpandedMesh(m_mesh, out m_instances_par_batch); m_expanded_mesh.UploadMeshData(true); int layer_mask = m_layer_selector.value; for (int i = 0; i < 32; ++i ) { if ((layer_mask & (1<<i)) != 0) { m_layer = i; m_layer_selector.value = 1 << i; break; } } if (m_data_transfer_mode == DataTransferMode.Buffer && !SystemInfo.supportsComputeShaders) { Debug.Log("BatchRenderer: ComputeBuffer is not available. fallback to TextureWithMesh data transfer mode."); m_data_transfer_mode = DataTransferMode.TextureWithMesh; } if (m_data_transfer_mode == DataTransferMode.TextureWithPlugin && !BatchRendererUtil.IsCopyToTextureAvailable()) { Debug.Log("BatchRenderer: CopyToTexture plugin is not available. fallback to TextureWithMesh data transfer mode."); m_data_transfer_mode = DataTransferMode.TextureWithMesh; } }