This has been driving me nuts. Rendering points on iOS using DrawProcedural or DrawProceduralIndirect seem to result in large quads.
Before posting a bug it would be nice to see if anyone else can reproduce it. I have attached an example package. Build to iOS, see if you get the same.
I testing on an iPhone7.
Carl Emil
using UnityEngine;
public class PointTopologyTest : MonoBehaviour
{
public Shader shader;
Material _material;
void OnRenderObject()
{
if( !_material ) _material = new Material( shader );
_material.SetPass(0);
Graphics.DrawProcedural( MeshTopology.Points, 100, 1 );
}
}
Sorry to bring up an old post, but here’s a solution for anyone struggling with this issue.
In Metal, the size of drawn points is undefined unless otherwise specified, so you’re seeing points drawn at some arbitrary size (in this case, like half the screen!)
You can define a point size by specifying a value in your vertex shader using the PSIZE semantic.
float4 vert (appdata_base v, out float pointSize : PSIZE) : SV_Position {
pointSize = 1;
return UnityObjectToClipPos(v.vertex);
}