您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
32 行
764 B
32 行
764 B
#pragma kernel appendId
|
|
#pragma kernel copy
|
|
|
|
Texture2D<float> _Mask;
|
|
float4 _MaskResolution;
|
|
|
|
uint _ObjectID;
|
|
Texture2D<float> _ObjectIDs;
|
|
float _ObjectIDsSize;
|
|
float _MaskingSize;
|
|
|
|
AppendStructuredBuffer<float2> _AppendBuffer;
|
|
|
|
[numthreads(8, 8, 1)]
|
|
void appendId (uint2 id : SV_DispatchThreadID)
|
|
{
|
|
float2 uv = id * _MaskingSize;
|
|
int2 objIdx = (int2)round(uv * _ObjectIDsSize);
|
|
uint objectId = (uint)_ObjectIDs[objIdx];
|
|
if (objectId == _ObjectID)
|
|
_AppendBuffer.Append(uv);
|
|
}
|
|
|
|
StructuredBuffer<float2> _CompactUVBuffer;
|
|
RWTexture2D<half2> _CompactUVTexture;
|
|
int _CompactUVTextureSize;
|
|
|
|
[numthreads(1, 1, 1)]
|
|
void copy (uint2 id : SV_DispatchThreadID)
|
|
{
|
|
_CompactUVTexture[id] = _CompactUVBuffer[id.x + _CompactUVTextureSize * id.y];
|
|
}
|