上記のプロジェクトなど点群のサイズを指定するのに下記の用にShader中でPSIZEが使われるが、これがDirectX11,12では動作しない。 サイズ指定が反映されず、点のサイズでしか表示されない。
struct v2f { float4 pos: POSITION; fixed4 col: COLOR; float size: PSIZE; // MeshTopology.Points の際の頂点の描画サイズを表す定義済セマンティクス float4 center: TEXCOORD0; // 描画する四角形の中心の座標 float dist: TEXCOORD1; // 描画する頂点とカメラの間の距離 };
GitHub - keijiro/Pcx: Point cloud importer & renderer for Unity にも
These size properties are only supported on some platforms; It may work with OpenGLCore and Metal, but never work with D3D11/12.
と記載がある。
上記Pcxでは点群の描画にGeometoryShaderが使用されている。
下記は、PointCloudVRの点群描画をPcxを参考に、GeometoryShaderで描画するようにしたShader
DirectX11で動かなかった、、描画されない。
v2g, g2f を整理し不要な記述を削除し、PcxからのGeometryを追加しただけ。