Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
    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;
        }
    }
Exemplo n.º 3
0
    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;
        }
    }