您当前的位置: 首页 >  Jave.Lin unity

Unity GPU Instancing 自己写个简单的测试用例3 - DrawInstanced

Jave.Lin 发布时间:2020-12-02 21:29:45 ,浏览量:4

前一篇:

  • Unity GPU Instancing 自己写个简单的测试用例1 实现了 Unity 中最简单的 Instancing draw 的方式
  • Unity GPU Instancing 自己写个简单的测试用例2 在1的基础上做了一丢丢优化

这一篇直接使用 Graphics.DrawInstanced API 来绘制 Instancing 的内容,减少 Hierarchy中 GameObject 的层级树的维护开销

CSharp
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
using UnityEngine.Rendering;

public class InstancedScript_Solution2 : MonoBehaviour
{
    private static int _Color = Shader.PropertyToID("_Color");
    private static MaterialPropertyBlock mpb;

    public int instance_count = 5;
    public Mesh mesh;
    public Material mat;

    public bool procedurce_fill_data;
    private bool last_fill_data = true;

    public Color[] col;
    public float[] angle_offset;
    public Vector3[] pos_offset;

    private Matrix4x4[] model_mats;
    private Vector4[] col_vec4;

    private void Start()
    {
        mpb = new MaterialPropertyBlock();
        UpdateDatas();
    }

    private void Update()
    {
        UpdateDatas();
        RenderCoins();
    }

    private void ProcedureFillData()
    {
        for (int i = 0; i             
关注
打赏
1688896170
查看更多评论
0.0837s