public bool enableGPUInstancing;
Описание
Включает создание экземпляров GPU на платформах, которые его поддерживают.
Чтобы использовать экземпляр GPU для рендеринга системы частиц, частица должна использовать шейдер, который содержит проход процедурного экземпляра (то есть он содержит директиву #pragma instancing_options procedural
). .
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
private ParticleSystem ps;
private ParticleSystemRenderer psr;
private bool enableGPUInstancing = true;
void Start()
{
ps = GetComponent<ParticleSystem>();
psr = GetComponent<ParticleSystemRenderer>();
psr.renderMode = ParticleSystemRenderMode.Mesh;
psr.SetMeshes(new Mesh[] { Resources.GetBuiltinResource<Mesh>("Capsule.fbx"), Resources.GetBuiltinResource<Mesh>("Cube.fbx"), Resources.GetBuiltinResource<Mesh>("Sphere.fbx") });
psr.sharedMaterial = new Material(Shader.Find("Particles/Standard Surface"));
}
void Update()
{
psr.enableGPUInstancing = enableGPUInstancing;
}
void OnGUI()
{
enableGPUInstancing = GUI.Toggle(new Rect(25, 45, 200, 30), enableGPUInstancing, "Enabled");
}
}