浏览代码

Vertex Animation Textures Workflow (#29)

* Base Commit

* Moved Misplaced Asset + Added Documentation

* Updated VAT ROP with inverse winding option + Check Normals

* More precisions in the documentation

Co-authored-by: Thomas Iché <thomasi@unity3d.com>
/main
GitHub 3 年前
当前提交
dc5c5264
共有 89 个文件被更改,包括 14594 次插入1 次删除
  1. 11
      DCC-Tools~/Houdini/README.txt
  2. 41
      Documentation~/DCCTools.md
  3. 9
      package.json
  4. 1001
      DCC-Tools~/Houdini/Examples/VAT-Skinmesh.hip
  5. 1001
      DCC-Tools~/Houdini/Examples/VAT-SourceMeshes.hip
  6. 1001
      DCC-Tools~/Houdini/Examples/VAT.hip
  7. 527
      DCC-Tools~/Houdini/VAT-ROP.hda
  8. 8
      Samples~/VertexAnimationTextures/Mesh.meta
  9. 166
      Samples~/VertexAnimationTextures/Mesh/VATMesh-1024.mesh
  10. 8
      Samples~/VertexAnimationTextures/Mesh/VATMesh-1024.mesh.meta
  11. 166
      Samples~/VertexAnimationTextures/Mesh/VATMesh-16384.mesh
  12. 8
      Samples~/VertexAnimationTextures/Mesh/VATMesh-16384.mesh.meta
  13. 166
      Samples~/VertexAnimationTextures/Mesh/VATMesh-2048.mesh
  14. 8
      Samples~/VertexAnimationTextures/Mesh/VATMesh-2048.mesh.meta
  15. 166
      Samples~/VertexAnimationTextures/Mesh/VATMesh-256.mesh
  16. 8
      Samples~/VertexAnimationTextures/Mesh/VATMesh-256.mesh.meta
  17. 166
      Samples~/VertexAnimationTextures/Mesh/VATMesh-4096.mesh
  18. 8
      Samples~/VertexAnimationTextures/Mesh/VATMesh-4096.mesh.meta
  19. 166
      Samples~/VertexAnimationTextures/Mesh/VATMesh-512.mesh
  20. 8
      Samples~/VertexAnimationTextures/Mesh/VATMesh-512.mesh.meta
  21. 166
      Samples~/VertexAnimationTextures/Mesh/VATMesh-8192.mesh
  22. 8
      Samples~/VertexAnimationTextures/Mesh/VATMesh-8192.mesh.meta
  23. 8
      Samples~/VertexAnimationTextures/SampleTextures.meta
  24. 122
      Samples~/VertexAnimationTextures/SampleTextures/Blobby-VATNRM.exr.meta
  25. 122
      Samples~/VertexAnimationTextures/SampleTextures/Blobby-VATPOS.exr.meta
  26. 98
      Samples~/VertexAnimationTextures/SampleTextures/Blobby2-VATNRM.tga.meta
  27. 98
      Samples~/VertexAnimationTextures/SampleTextures/Blobby2-VATPOS.exr.meta
  28. 122
      Samples~/VertexAnimationTextures/SampleTextures/Blobby2b-VATNRM.exr.meta
  29. 122
      Samples~/VertexAnimationTextures/SampleTextures/Blobby2b-VATPOS.exr.meta
  30. 122
      Samples~/VertexAnimationTextures/SampleTextures/Blobby3-VATNRM.exr.meta
  31. 122
      Samples~/VertexAnimationTextures/SampleTextures/Blobby3-VATPOS.exr.meta
  32. 1001
      Samples~/VertexAnimationTextures/SampleTextures/Blobby4-VATNRM.tga
  33. 98
      Samples~/VertexAnimationTextures/SampleTextures/Blobby4-VATNRM.tga.meta
  34. 98
      Samples~/VertexAnimationTextures/SampleTextures/Blobby4-VATPOS.exr.meta
  35. 8
      Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter.meta
  36. 1001
      Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedAnim-VATNRM.tga
  37. 98
      Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedAnim-VATNRM.tga.meta
  38. 98
      Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedAnim-VATPOS.exr.meta
  39. 1001
      Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedCharacter.obj
  40. 105
      Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedCharacter.obj.meta
  41. 110
      Samples~/VertexAnimationTextures/SampleTextures/Splash01-VATNRM.exr.meta
  42. 110
      Samples~/VertexAnimationTextures/SampleTextures/Splash01-VATPOS.exr.meta
  43. 98
      Samples~/VertexAnimationTextures/SampleTextures/TeapotMorph-VATNRM.tga.meta
  44. 98
      Samples~/VertexAnimationTextures/SampleTextures/TeapotMorph-VATPOS.exr.meta
  45. 8
      Samples~/VertexAnimationTextures/Scenes.meta
  46. 64
      Samples~/VertexAnimationTextures/Scenes/New Lighting Settings.lighting
  47. 8
      Samples~/VertexAnimationTextures/Scenes/New Lighting Settings.lighting.meta
  48. 1001
      Samples~/VertexAnimationTextures/Scenes/VAT-Scene.unity
  49. 7
      Samples~/VertexAnimationTextures/Scenes/VAT-Scene.unity.meta
  50. 8
      Samples~/VertexAnimationTextures/Script.meta
  51. 8
      Samples~/VertexAnimationTextures/Script/Editor.meta
  52. 26
      Samples~/VertexAnimationTextures/Script/Editor/VATTexturePostProcessor.cs
  53. 11
      Samples~/VertexAnimationTextures/Script/Editor/VATTexturePostProcessor.cs.meta
  54. 9
      Samples~/VertexAnimationTextures/Script/VertexAnimationTextureMesh.cs
  55. 11
      Samples~/VertexAnimationTextures/Script/VertexAnimationTextureMesh.cs.meta
  56. 8
      Samples~/VertexAnimationTextures/Shaders.meta
  57. 704
      Samples~/VertexAnimationTextures/Shaders/Sample VertexAnimationTexture.shadersubgraph
  58. 10
      Samples~/VertexAnimationTextures/Shaders/Sample VertexAnimationTexture.shadersubgraph.meta
  59. 1001
      Samples~/VertexAnimationTextures/Shaders/VAT-Simple.shadergraph
  60. 10
      Samples~/VertexAnimationTextures/Shaders/VAT-Simple.shadergraph.meta
  61. 8
      Samples~/VertexAnimationTextures/VFX.meta
  62. 1001
      Samples~/VertexAnimationTextures/VFX/VAT-Characters.vfx
  63. 7
      Samples~/VertexAnimationTextures/VFX/VAT-Characters.vfx.meta
  64. 1001
      Samples~/VertexAnimationTextures/VFX/VAT-SingleParticle.vfx
  65. 7
      Samples~/VertexAnimationTextures/VFX/VAT-SingleParticle.vfx.meta

11
DCC-Tools~/Houdini/README.txt


========
* Use the File > Import > Houdini Digital Asset to Import the Unity_VFX_Tools.hda file.
* Use the File > Import > Houdini Digital Asset to Import the VAT-ROP.hda file to import the VAT ROP
2021 - 11 - 21:
---------------
Added VAT ROP Exporter
2021 - 11 - 02:
---------------
Upgraded PCache/VF exporters to python3
Added X flip option for export
2018 - 11 - 02:
---------------

41
Documentation~/DCCTools.md


* **Examples** (Folder) : Contains a set of houdini example files (.hipnc)
* **Unity_VFX_Tools.hda** : The digital Asset file containing the Unity VFX Toolbox Digital assets for Houdini.
* **VAT-ROP.hda** : The digital Asset file containing the Vertex Animation Texture ROP Exporter.
## Vertex Animation Textures
Vertex animation textures is a workflow that enable animating vertices of a mesh, based on data baked into texture objects. These textures contain generally per-pixel data that correspond to the position, normal or other attributes of a particular vertex. The positions can be baked either as absolute, or relative to a reference mesh (for ex: a T-Pose character). VFXToolbox enables the worfklow by providing a Houdini Exporter and some sample assets that you can import in your unity project to handle these textures
## Houdini VAT Exporter (ROP)
The VAT-ROP exports point data from frames of an animated mesh to textures. It produces textures with point data that correspond to the values of position and normal of a given SOP. Each texture is composed of lines of data, each line corresponding to one frame of animation. Every pixel on one line holds the data for a particular vertex.
For convenience, we advise to facet (unique points) and derive normals to points so we end up in a 1:1 point:vertex values for export.
#### Baking Modes
It can be used in two different modes:
* *Non-uniform topology* : This mode assumes that the geometry is re-written every frame and will bake the absolute positions of vertices by groups of 3. You have to determine a maximum point count so it will drive the width of the texture. In non-uniform topology mode, degenerate input geometry must be used. There are some assets exported with way, already bundled in the VertexAnimationTextures Sample of VFX Toolbox. In a Non-Uniform Topology, only the Positions and the Normals are exported.
* *Uniform topology* : This mode uses a reference mesh as initial pose, so all the positions are not baked as their absolute value, but instead as position differences from the T-Pose. This enables sampling multiple frames and performing blending. Normals are still baked as absolute value in object space.
#### Export Options
Some options enable you to perform some changes before export such as:
* Reverse Frame Order
* Reverse Triangle Winding (Triangles will appear back-face, this can solve some of the inverted faces issues in unity)
#### Export File Formats
The exporter can run in two different file formats: EXR and TGA. EXR holds 32bit floating point value data per channel, whereas TGA only stores data in 8 bit per channel. TGA Also stores the -1 to 1 range in unsigned normalized.
#### Limitations:
* Maximum of 16384 points per frame baked (maximum width of a texture in unity)
* Only Position / Normals baked at the moment
* TGA Export clamps values from an unit cube (-1 .. 1) in each axis, and stores it as unsigned normalized.
* If a Point Normal attribute is not found, the log will output a warning, and the Normal VAT texture will be filled with Up vector constant values)
### Import in Unity
By deploying the VertexAnimationTextures sample from the VFXToolbox package manager page, you will install in the project some assets that you can start with, or use as example to use vertex animation textures. The sample also contains an `AssetPostprocessor` that will configure any texture of extension `tga` or `exr` with the following suffixes `-VATPOS` (Position) or `-VATNRM` (Normals).
A `VAT-Simple` Shadergraph uses a sample `Sample VertexAnimationTexture` Subgraph that loads the value directly from the VertexID. Its use is demonstrated through the `VAT-SingleParticle.vfx` and `VAT-Characters.vfx` VFXGraphs
### Troubleshooting
* __In Uniform topology, the geometry can become garbled__: as if the triangles were in correct place, but somehow rotated. This is related to the winding order of the mesh. Please check the `Optimize Mesh` in the import options and ensure `Vertex Order` is enabled. Also, the problem can also come from the inverted winding
* __The animation is played backwards__ : This can happen when your texture is baked top to bottom. You can use the Reverse Frame order option in the exporter, or play it backwards (see the ReverseAnimation property in the `VAT-SingleParticle` example)

9
package.json


],
"type": "tool",
"hideInEditor": false,
"unity": "2020.2"
"unity": "2020.2",
"samples": [
{
"displayName": "Vertex Animation Textures (VATs)",
"description": "Additional Assets for sampling VertexAnimationTextures. Use the VAT ROP houdini exporter in the package's DCC-Tools~ directory to generate textures from houdini. These samples use ShaderGraph, Visual Effect Graph and High Definition Render Pipeline to render.",
"path": "Samples~/VertexAnimationTextures"
}
]
}

1001
DCC-Tools~/Houdini/Examples/VAT-Skinmesh.hip
文件差异内容过多而无法显示
查看文件

1001
DCC-Tools~/Houdini/Examples/VAT-SourceMeshes.hip
文件差异内容过多而无法显示
查看文件

1001
DCC-Tools~/Houdini/Examples/VAT.hip
文件差异内容过多而无法显示
查看文件

527
DCC-Tools~/Houdini/VAT-ROP.hda


INDX INDEX_SECTION�a�-�houdini.hdalibrary�a�-�Driver/vat_output�B3a�-�
vat_outputVertex Animation Texture*oplib:/Driver/vat_output?Driver/vat_output ROP_shellDrivera�-�INDX DialogScript�a�� CreateScript�-a�-�TypePropertiesOptions.a��HelpKa�� Tools.shelfKa�:InternalFileOptionsL0a�-� Contents.gz|�a�-� PythonModule^#J#JExtraFileOptions?�ua��# Dialog script for vat_output automatically generated
{
name vat_output
script vat_output
label "Vertex Animation Texture"
help {
""
}
parm {
name "execute"
baseparm
label "Render"
joinnext
export none
}
parm {
name "renderdialog"
baseparm
label "Controls..."
nolabel
export none
}
parm {
name "trange"
label "Valid Frame Range"
type ordinal
default { "off" }
menu {
"off" "Render Current Frame"
"normal" "Render Frame Range"
"on" "Render Frame Range Only (Strict)"
}
parmtag { "autoscope" "0000000000000000" }
parmtag { "script_callback_language" "python" }
}
parm {
name "f"
label "Start/End/Inc"
type float
size 3
default { [ "$FSTART" hscript-expr ] [ "$FEND" hscript-expr ] "1" }
disablewhen "{ trange == off }"
range { 0 10 }
parmtag { "autoscope" "0000000000000000" }
parmtag { "script_callback_language" "python" }
}
parm {
name "take"
label "Render with Take"
type string
default { "_current_" }
menu {
[ "opmenu -l -a shell1 take" ]
}
parmtag { "autoscope" "0000000000000000" }
parmtag { "script_callback_language" "python" }
}
parm {
name "parm_reverseFrames"
label "Reverse Frames"
type toggle
default { "0" }
parmtag { "script_callback_language" "python" }
}
groupsimple {
name "folder"
label "Baking Options"
parm {
name "parm_mode"
label "Label"
type integer
default { "0" }
menu {
"0" "Non-Uniform Topology (Fluids)"
"1" "Uniform Topology (Skin/RB Animation)"
}
range { 0 10 }
parmtag { "script_callback_language" "python" }
}
parm {
name "pointCount"
label "Point Count"
type integer
default { "16384" }
hidewhen "{ parm_mode != 0 }"
range { 256 16384 }
parmtag { "script_callback_language" "python" }
}
parm {
name "parm_tpose"
label "T-Pose reference SOP"
type oppath
default { "" }
hidewhen "{ parm_mode != 1 }"
parmtag { "opfilter" "!!SOP!!" }
parmtag { "oprelative" "." }
parmtag { "script_callback_language" "python" }
}
parm {
name "sop_output"
label "Target Animated SOP"
type oppath
default { "" }
parmtag { "opfilter" "!!SOP!!" }
parmtag { "oprelative" "." }
parmtag { "script_callback_language" "python" }
}
parm {
name "pram_reverseWinding"
label "Reverse Triangle Winding"
type toggle
default { "0" }
parmtag { "script_callback_language" "python" }
}
}
groupsimple {
name "folder0"
label "Output"
parm {
name "folder_customOutputFolder"
label " "
type toggle
joinnext
default { "0" }
parmtag { "script_callback_language" "python" }
}
parm {
name "parm_manualPath"
label "Output Directory"
type directory
default { "$HIP/" }
disablewhen "{ folder_customOutputFolder == 0 }"
parmtag { "script_callback_language" "python" }
}
parm {
name "parm_outFileName"
label "Base File Name"
type string
default { "VAT" }
parmtag { "script_callback_language" "python" }
}
parm {
name "parm_posPrecision"
label "Position File Type"
type integer
default { "1" }
menu {
"0" "TGA (Low-precision)"
"1" "EXR (High Precision)"
}
range { 0 10 }
parmtag { "script_callback_language" "python" }
}
parm {
name "parm_nrmPrecision"
label "Normals File Type"
type integer
default { "0" }
menu {
"0" "TGA (Low-precision)"
"1" "EXR (High Precision)"
}
range { 0 10 }
parmtag { "script_callback_language" "python" }
}
}
}
# Automatically generated script
\set noalias = 1
#
# Creation script for vat_output operator
#
if ( "$arg1" == "" ) then
echo This script is intended as a creation script
exit
endif
# Node $arg1 (Driver/vat_output)
opexprlanguage -s hscript $arg1
opuserdata -n '___Version___' -v '' $arg1
CheckExternal := 1;
ContentsCompressionType := 1;
ForbidOutsideParms := 1;
GzipContents := 1;
LockContents := 1;
MakeDefault := 1;
ParmsFromVfl := 0;
PrefixDroppedParmLabel := 0;
PrefixDroppedParmName := 0;
SaveCachedCode := 0;
SaveIcon := 1;
SaveSpareParms := 0;
UnlockOnCreate := 0;
UseDSParms := 1;
<?xml version="1.0" encoding="UTF-8"?>
<shelfDocument>
<!-- This file contains definitions of shelves, toolbars, and tools.
It should not be hand-edited when it is being used by the application.
Note, that two definitions of the same element are not allowed in
a single file. -->
<tool name="$HDA_DEFAULT_TOOL" label="$HDA_LABEL" icon="$HDA_ICON">
<toolMenuContext name="viewer">
<contextNetType>ROP</contextNetType>
</toolMenuContext>
<toolMenuContext name="network">
<contextOpType>$HDA_TABLE_AND_NAME</contextOpType>
</toolMenuContext>
<toolSubmenu>Unity VFX</toolSubmenu>
<script scriptType="python"><![CDATA[import drivertoolutils
drivertoolutils.genericTool(kwargs, '$HDA_NAME')]]></script>
</tool>
</shelfDocument>
 nodeconntype nodeparmtype���W_o�6װ�Y��=9UI��l��-�և,04��I�%T"5����$��;R���V��)P��wG������q�ڏy�>I���g���Di$I�ep��r���޴��AV�L���
)s*��~�+�#� ]S��n;�6Tg%S9+�����N�`k�v2�4�k�yn+T�+�I��,���4�#7��L �ٍ�r@S�t��E���@ ����fM[S���;����Y�H�����*eɼR�޳%�9��,�uYï���Z�ܒ�^��jj���̜ā���hWk�f7��M��C�^ц���޽u+~�aI���L2�I�$\D)�~V���R��2��G;]
�.K�P���W痿?;��K���� ��0����2��i
�,b��r��?~���.DTe�jmv�YS��蚡����c+#���5�)&M�x�p�^�V�1��6�֗G�Y0�#���sU��&²���pܓ&;��Z�Y��a�$��!�a�����[�ڎ���Y���݁!�x�����HU>��i;l������J�����B�kT�3 ���C�BE$=_��ls��s����bk[���p�֥���;s��I�2+�W��?/ȕw�n��ۇ8����.4]��.�`
���U�x�� ����d���*��d���#�6 �U�ʹᕷ�: ׏^]y���� �B�=�I�Ӄ��iҖ�����W�总�e�f�7�����0z;�������׼��XT�kcO�f(�Ao�4
�K�
f�y����C��^U�U�(�����Ȣ<ߓz��kcb�/��a4��UUs@΍���4�1�P��7�m-@���_D��l~j'=D��pJ=}L��!�,���4�̴�7�8,�gB(=e�wwR����R�y77Jv���w{򸇘>��i��**~?ӧ�`����Na|���G�z~E>��e�d�D�3퐣_����//�;�����ɉ�/��L��import numpy as np
import hou
import os.path
#####################################################
# Targa I/O Helper
class Targa(object):
m_fileName = ""
m_width = 1
m_height = 1
m_rgbdata = bytearray()
m_adata = bytearray()
# CONSTRUCTOR WITH CREATE
def __init__(self, fileName, width, height):
self.m_fileName = fileName
self.m_width = width
self.m_height = height
self.m_rgbdata = bytearray(width*height*3)
self.m_adata = bytearray(width*height)
self.Fill(0,255,0,255)
def Fill(self, r, g, b, a):
for i in range (self.m_height*self.m_width):
self.m_rgbdata[i*3] = r
self.m_rgbdata[i*3+1] = g
self.m_rgbdata[i*3+2] = b
self.m_adata[i] = a
def SetPixelByIdx(self,i,r,g,b,a):
self.m_rgbdata[i*3] = r
self.m_rgbdata[i*3+1] = g
self.m_rgbdata[i*3+2] = b
self.m_adata[(i)] = a
return
def SetPixel(self,x,y,r,g,b,a):
index = self.getIndexRGB(x,y)
self.m_rgbdata[index] = r
self.m_rgbdata[index+1] = g
self.m_rgbdata[index+2] = b
self.m_adata[(x*y)] = a
return
def getIndexRGB(self,x,y):
return ((y*self.m_width)+x)*3
def getIndexA(self,x,y):
return (y*self.m_width)+x
def R(self,x,y):
return self.m_rgbdata[self.getIndexRGB(x, y)]
def G(self,x,y):
return self.m_rgbdata[self.getIndexRGB(x, y)+1]
def B(self,x,y):
return self.m_rgbdata[self.getIndexRGB(x, y)+2]
def A(self,x,y):
return self.m_adata[self.getIndexA(x, y)]
def Save(self,mode):
f = open(self.m_fileName, 'wb')
# WRITE HEADER
header = bytearray()
header.append(0) # No ID Field
header.append(0) # No Color Map
header.append(2) # Uncompressed Color without colormap
# Null dummies for colormap (unused)
header.append(0)
header.append(0)
header.append(0)
header.append(0)
header.append(0)
# End Null dummies
# 2 bytes for X origin, 2 bytes for Y origin (will be zero)
header.append(0)
header.append(0)
header.append(0)
header.append(0)
# Width then Length (2 bytes each)
header.append(self.m_width % 256)
header.append(self.m_width >> 8)
header.append(self.m_height % 256)
header.append(self.m_height >> 8)
if mode == 0: # RGB
header.append(24)
else: # RGBA
header.append(32)
# Descriptor have to be zero to be truvevision targa compliant
header.append(0)
# WRITE HEADER
f.write(header)
image_data = bytearray()
count = 0
# WRITE DATA
for j in range(self.m_height-1,-1,-1):
for i in range(self.m_width):
count += 1
image_data.append(self.B(i, j))
image_data.append(self.G(i, j))
image_data.append(self.R(i, j))
if mode == 1:
image_data.append(self.A(i, j))
f.write(image_data)
f.close()
def byte(value):
return max(0,min(255,int((value * 0.5 + 0.5) * 255)))
def saveImageDataToTGA(data, count, frames, filename):
tga = Targa(filename, count, frames)
for i in range(count * frames):
r = byte(data[i*4])
g = byte(data[i*4+1])
b = byte(data[i*4+2])
tga.SetPixelByIdx(i,r,g,b,255)
tga.Save(0)
def initialize():
node = hou.pwd().parent()
minFrame = node.parm("f1").evalAsFloat()
maxFrame = node.parm("f2").evalAsFloat()
interval = node.parm("f3").evalAsFloat()
mode = node.parm("parm_mode").evalAsInt()
frames = int((1 + maxFrame - minFrame)/interval)
if mode == 0:
count = int(node.parm("pointCount").evalAsInt())
elif mode == 1:
count = len(node.parm("sop_output").evalAsNode().geometry().prims()) *3
if count == 0 or count > 16384:
raise hou.Error("incorrect point count or SOP not referenced");
posData = np.empty((count*frames)*4, dtype=float)
nrmData = np.empty((count*frames)*4, dtype=float)
sop = node.parm("sop_output").evalAsNode()
if sop == None:
print ("No SOP Object Defined")
return
geo = sop.geometry()
if geo.findPointAttrib("N") == None:
print ("WARNING: No N (Nornal) attribute found at point level, will default to Up Normal")
node.setCachedUserData("mode",mode)
node.setCachedUserData("count",count)
node.setCachedUserData("frames",frames)
node.setCachedUserData("posData",posData)
node.setCachedUserData("nrmData",nrmData)
def process(frame):
node = hou.pwd().parent()
posHQ = node.parm("parm_posPrecision").evalAsInt() == 1
nrmHQ = node.parm("parm_nrmPrecision").evalAsInt() == 1
reverseWinding = node.parm("pram_reverseWinding").evalAsInt() == 1
reverseFrames = node.parm("parm_reverseFrames").evalAsInt() == 1
sop = node.parm("sop_output").evalAsNode()
if sop == None:
print ("No SOP Object Defined")
return
geo = sop.geometry()
count = node.cachedUserData("count")
mode = node.cachedUserData("mode")
posData = node.cachedUserData("posData")
nrmData = node.cachedUserData("nrmData")
hasNormal = geo.findPointAttrib("N") != None
if mode == 1:
ref_points = node.parm("parm_tpose").evalAsNode().geometry().points()
# "not" is intended here, we reverse layout by default in order to be compatible with unity
if not reverseFrames:
minFrame = node.parm("f1").evalAsFloat()
maxFrame = node.parm("f2").evalAsFloat()
interval = node.parm("f3").evalAsFloat()
frames = int((1 + maxFrame - minFrame)/interval)
frame = frames-frame
i = 0
for prim in geo.prims():
k = 0
pts = prim.points()
if reverseWinding:
pts.reverse()
for point in pts:
if i >= count:
print ("Reached more than {} points at frame {}".format(count,frame))
break
if k > 2:
print ("Found a primitive with more than 3 vertices{}".format(count,frame))
break
if mode == 0:
pos = point.position()
elif mode == 1:
idx = point.number()
pos = point.position() - ref_points[idx].position()
if hasNormal:
nrm = point.attribValue("N")
else:
nrm = (0.0,1.0,0.0)
stride = int(((frame-1)*count*4)+(i*4))
posData[stride] = -pos[0]
posData[stride+1] = pos[1]
posData[stride+2] = pos[2]
nrmData[stride] = -nrm[0]
nrmData[stride+1] = nrm[1]
nrmData[stride+2] = nrm[2]
k = k+1
i = i+1
node.setCachedUserData("posData",posData)
node.setCachedUserData("nrmData",nrmData)
def finalize():
node = hou.pwd().parent()
count = node.cachedUserData("count")
frames = node.cachedUserData("frames")
posData = node.cachedUserData("posData")
nrmData = node.cachedUserData("nrmData")
customOut = (node.parm("folder_customOutputFolder").evalAsInt() == 1)
if(customOut):
cwd = node.parm("parm_manualPath").evalAsString()
else:
cwd = os.path.dirname(hou.hipFile.path())
f = node.parm("parm_outFileName").evalAsString()
if(node.parm("parm_posPrecision").evalAsInt() == 0):
ext = "tga"
filename = "{}/{}-VATPOS.{}".format(cwd,f,ext)
print("Saving Position to : {} ...".format(filename))
saveImageDataToTGA(posData, count, frames, filename)
else:
ext = "exr"
filename = "{}/{}-VATPOS.{}".format(cwd,f,ext)
print("Saving Position to : {} ...".format(filename))
hou.saveImageDataToFile(posData, count, frames, filename)
if(node.parm("parm_nrmPrecision").evalAsInt() == 0):
ext = "tga"
filename = "{}/{}-VATNRM.{}".format(cwd,f,ext)
print("Saving Position to : {} ...".format(filename))
saveImageDataToTGA(nrmData, count, frames, filename)
else:
ext = "exr"
filename = "{}/{}-VATNRM.{}".format(cwd,f,ext)
print("Saving Position to : {} ...".format(filename))
hou.saveImageDataToFile(nrmData, count, frames, filename)
node.destroyCachedUserData("posData")
node.destroyCachedUserData("nrmData") PythonModule/Cursor �)PythonModule/IsExprPythonModule/IsPythonPythonModule/IsScriptPythonModule/SourceViewerStateModule/CodeGenInput�{
"state_name":"",
"state_label":"",
"state_descr":"",
"state_icon":"$HH/config/Icons",
"state_debug_menu":0,
"state_sample":0,
"state_handler_indices":[]
}

8
Samples~/VertexAnimationTextures/Mesh.meta


fileFormatVersion: 2
guid: 62e44e12bbb37a547ba96f5ebf918d6f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

166
Samples~/VertexAnimationTextures/Mesh/VATMesh-1024.mesh
文件差异内容过多而无法显示
查看文件

8
Samples~/VertexAnimationTextures/Mesh/VATMesh-1024.mesh.meta


fileFormatVersion: 2
guid: b4a3c49954c7b284282c7d456e3f555a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4300000
userData:
assetBundleName:
assetBundleVariant:

166
Samples~/VertexAnimationTextures/Mesh/VATMesh-16384.mesh
文件差异内容过多而无法显示
查看文件

8
Samples~/VertexAnimationTextures/Mesh/VATMesh-16384.mesh.meta


fileFormatVersion: 2
guid: f8edeb1b0bcd2e3489f654800263d61c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4300000
userData:
assetBundleName:
assetBundleVariant:

166
Samples~/VertexAnimationTextures/Mesh/VATMesh-2048.mesh
文件差异内容过多而无法显示
查看文件

8
Samples~/VertexAnimationTextures/Mesh/VATMesh-2048.mesh.meta


fileFormatVersion: 2
guid: 64caffae900dd344ea897665626e1c0d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4300000
userData:
assetBundleName:
assetBundleVariant:

166
Samples~/VertexAnimationTextures/Mesh/VATMesh-256.mesh
文件差异内容过多而无法显示
查看文件

8
Samples~/VertexAnimationTextures/Mesh/VATMesh-256.mesh.meta


fileFormatVersion: 2
guid: a4f2b347750dcfe4190b06e61183fde1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4300000
userData:
assetBundleName:
assetBundleVariant:

166
Samples~/VertexAnimationTextures/Mesh/VATMesh-4096.mesh
文件差异内容过多而无法显示
查看文件

8
Samples~/VertexAnimationTextures/Mesh/VATMesh-4096.mesh.meta


fileFormatVersion: 2
guid: 9129873b79ee97342bf86ca01caf70fd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4300000
userData:
assetBundleName:
assetBundleVariant:

166
Samples~/VertexAnimationTextures/Mesh/VATMesh-512.mesh
文件差异内容过多而无法显示
查看文件

8
Samples~/VertexAnimationTextures/Mesh/VATMesh-512.mesh.meta


fileFormatVersion: 2
guid: 979c299092e3d4f43beb7b9011154955
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4300000
userData:
assetBundleName:
assetBundleVariant:

166
Samples~/VertexAnimationTextures/Mesh/VATMesh-8192.mesh
文件差异内容过多而无法显示
查看文件

8
Samples~/VertexAnimationTextures/Mesh/VATMesh-8192.mesh.meta


fileFormatVersion: 2
guid: 9bd80d28be89e7b46969a2fef832ef84
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4300000
userData:
assetBundleName:
assetBundleVariant:

8
Samples~/VertexAnimationTextures/SampleTextures.meta


fileFormatVersion: 2
guid: 048dca3fbc2fdb2458efb13fb3555505
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

122
Samples~/VertexAnimationTextures/SampleTextures/Blobby-VATNRM.exr.meta


fileFormatVersion: 2
guid: 8ad47cf6124758e4a9bc66ca1b0d7e48
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

122
Samples~/VertexAnimationTextures/SampleTextures/Blobby-VATPOS.exr.meta


fileFormatVersion: 2
guid: 6ede116d50a1bce4286d5d6ad23b0d29
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

98
Samples~/VertexAnimationTextures/SampleTextures/Blobby2-VATNRM.tga.meta


fileFormatVersion: 2
guid: 8d55122fa9e980d4d9979b3f5a3e9b36
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

98
Samples~/VertexAnimationTextures/SampleTextures/Blobby2-VATPOS.exr.meta


fileFormatVersion: 2
guid: f9d2d6c8a7e127c43a12e8a849803534
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

122
Samples~/VertexAnimationTextures/SampleTextures/Blobby2b-VATNRM.exr.meta


fileFormatVersion: 2
guid: 8c8822e2df17bc64f97c4da9772de1fd
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

122
Samples~/VertexAnimationTextures/SampleTextures/Blobby2b-VATPOS.exr.meta


fileFormatVersion: 2
guid: dc4bbe32aca6cf2408479e5c7d782b38
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

122
Samples~/VertexAnimationTextures/SampleTextures/Blobby3-VATNRM.exr.meta


fileFormatVersion: 2
guid: 3a7db5a25fe471f4aad7881c55765f28
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

122
Samples~/VertexAnimationTextures/SampleTextures/Blobby3-VATPOS.exr.meta


fileFormatVersion: 2
guid: 3f6fce04bb922db4987c3718e35d5a31
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

1001
Samples~/VertexAnimationTextures/SampleTextures/Blobby4-VATNRM.tga
文件差异内容过多而无法显示
查看文件

98
Samples~/VertexAnimationTextures/SampleTextures/Blobby4-VATNRM.tga.meta


fileFormatVersion: 2
guid: a34a1951c3040634980d49cece182d39
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

98
Samples~/VertexAnimationTextures/SampleTextures/Blobby4-VATPOS.exr.meta


fileFormatVersion: 2
guid: ded474de30f0cbb4aa2f30b59a1a04e9
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

8
Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter.meta


fileFormatVersion: 2
guid: 85bf3bbd6126adf449058ff852bbfa7d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedAnim-VATNRM.tga
文件差异内容过多而无法显示
查看文件

98
Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedAnim-VATNRM.tga.meta


fileFormatVersion: 2
guid: 47b1a78acc0fb324fb1424f8261b6901
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

98
Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedAnim-VATPOS.exr.meta


fileFormatVersion: 2
guid: cc6c1b4dc7fd09140a99e3d9c8ca0d96
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

1001
Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedCharacter.obj
文件差异内容过多而无法显示
查看文件

105
Samples~/VertexAnimationTextures/SampleTextures/PosedCharacter/PosedCharacter.obj.meta


fileFormatVersion: 2
guid: f4c9baee208b0854a8e755c7a47fc605
ModelImporter:
serializedVersion: 21202
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 1
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 0
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 0
meshOptimizationFlags: 2
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

110
Samples~/VertexAnimationTextures/SampleTextures/Splash01-VATNRM.exr.meta


fileFormatVersion: 2
guid: e69b5b3b84939874883266f8b9576507
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

110
Samples~/VertexAnimationTextures/SampleTextures/Splash01-VATPOS.exr.meta


fileFormatVersion: 2
guid: e7ea701878fd13c4ab9e2d7eeb2d7211
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

98
Samples~/VertexAnimationTextures/SampleTextures/TeapotMorph-VATNRM.tga.meta


fileFormatVersion: 2
guid: d210f8aecd054ca419e61a61e06dba58
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

98
Samples~/VertexAnimationTextures/SampleTextures/TeapotMorph-VATPOS.exr.meta


fileFormatVersion: 2
guid: 38ba28ee0a9c9c849aa8aedc3b9debe2
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 16384
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

8
Samples~/VertexAnimationTextures/Scenes.meta


fileFormatVersion: 2
guid: 7ed60532c7b6e454dbe00ea66d2b22b3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

64
Samples~/VertexAnimationTextures/Scenes/New Lighting Settings.lighting


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!850595691 &4890085278179872738
LightingSettings:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New Lighting Settings
serializedVersion: 4
m_GIWorkflowMode: 1
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_RealtimeEnvironmentLighting: 1
m_BounceScale: 1
m_AlbedoBoost: 1
m_IndirectOutputScale: 1
m_UsingShadowmask: 1
m_BakeBackend: 1
m_LightmapMaxSize: 1024
m_BakeResolution: 40
m_Padding: 2
m_LightmapCompression: 3
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAO: 0
m_MixedBakeMode: 2
m_LightmapsBakeMode: 1
m_FilterMode: 1
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_RealtimeResolution: 2
m_ForceWhiteAlbedo: 0
m_ForceUpdates: 0
m_FinalGather: 0
m_FinalGatherRayCount: 256
m_FinalGatherFiltering: 1
m_PVRCulling: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVRMinBounces: 1
m_PVREnvironmentMIS: 1
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_PVRTiledBaking: 0

8
Samples~/VertexAnimationTextures/Scenes/New Lighting Settings.lighting.meta


fileFormatVersion: 2
guid: 09c8418aa6ed00c48adebce73d05fbf4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4890085278179872738
userData:
assetBundleName:
assetBundleVariant:

1001
Samples~/VertexAnimationTextures/Scenes/VAT-Scene.unity
文件差异内容过多而无法显示
查看文件

7
Samples~/VertexAnimationTextures/Scenes/VAT-Scene.unity.meta


fileFormatVersion: 2
guid: 9fc0d4010bbf28b4594072e72b8655ab
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Samples~/VertexAnimationTextures/Script.meta


fileFormatVersion: 2
guid: 59257a05f403c204c893ae4fc334c297
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Samples~/VertexAnimationTextures/Script/Editor.meta


fileFormatVersion: 2
guid: 89e460a7d3b52234a8c03283ef156623
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

26
Samples~/VertexAnimationTextures/Script/Editor/VATTexturePostProcessor.cs


using UnityEngine;
using UnityEditor;
public class VATTexturePostProcessor : AssetPostprocessor
{
void OnPreprocessTexture()
{
if( assetPath.EndsWith("-VATPOS.tga")
|| assetPath.EndsWith("-VATPOS.exr")
|| assetPath.EndsWith("-VATNRM.tga")
|| assetPath.EndsWith("-VATNRM.exr")
)
{
var importer = (TextureImporter)assetImporter;
importer.sRGBTexture = false;
importer.maxTextureSize = 16384;
importer.textureCompression = TextureImporterCompression.Uncompressed;
importer.npotScale = TextureImporterNPOTScale.None;
importer.mipmapEnabled = false;
importer.wrapMode = TextureWrapMode.Clamp;
importer.filterMode = FilterMode.Point;
}
}
}

11
Samples~/VertexAnimationTextures/Script/Editor/VATTexturePostProcessor.cs.meta


fileFormatVersion: 2
guid: 3cbaa20aab8e0524aace939097aa8f11
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

9
Samples~/VertexAnimationTextures/Script/VertexAnimationTextureMesh.cs


using UnityEngine;
public class VertexAnimationTextureMesh : MonoBehaviour
{
private void OnPostRender()
{
}
}

11
Samples~/VertexAnimationTextures/Script/VertexAnimationTextureMesh.cs.meta


fileFormatVersion: 2
guid: 35dbe0cab7120db4da376fafd4b75d83
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

8
Samples~/VertexAnimationTextures/Shaders.meta


fileFormatVersion: 2
guid: d6aa13d387f4a1045a2c29a45754672c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

704
Samples~/VertexAnimationTextures/Shaders/Sample VertexAnimationTexture.shadersubgraph


{
"m_SGVersion": 3,
"m_Type": "UnityEditor.ShaderGraph.GraphData",
"m_ObjectId": "c22765af6803411eb76a4f5bd97bfb37",
"m_Properties": [
{
"m_Id": "04ef8a07298944ada89f97ff8fb6a6a9"
},
{
"m_Id": "41b425fdc3764fc088114a56e8d13a24"
},
{
"m_Id": "effdc3a24e2646a7ad037b903a53a1f7"
}
],
"m_Keywords": [],
"m_Dropdowns": [],
"m_CategoryData": [
{
"m_Id": "49e51d7d288043468031157d5426f687"
}
],
"m_Nodes": [
{
"m_Id": "465566306f2a494a95019186348cbedc"
},
{
"m_Id": "4c7f1581c6a3415b9eb1427d8a342ae8"
},
{
"m_Id": "04af26dd250d4191a53745a76674dd57"
},
{
"m_Id": "71bc24d9794e441a856428e2911e4757"
},
{
"m_Id": "dd621be3fb4749eabdcb5a6b9c66107e"
},
{
"m_Id": "7ebe427b9b79453498c6e9c47abb24e0"
}
],
"m_GroupDatas": [],
"m_StickyNoteDatas": [],
"m_Edges": [
{
"m_OutputSlot": {
"m_Node": {
"m_Id": "04af26dd250d4191a53745a76674dd57"
},
"m_SlotId": 0
},
"m_InputSlot": {
"m_Node": {
"m_Id": "4c7f1581c6a3415b9eb1427d8a342ae8"
},
"m_SlotId": 0
}
},
{
"m_OutputSlot": {
"m_Node": {
"m_Id": "4c7f1581c6a3415b9eb1427d8a342ae8"
},
"m_SlotId": 1
},
"m_InputSlot": {
"m_Node": {
"m_Id": "465566306f2a494a95019186348cbedc"
},
"m_SlotId": 1
}
},
{
"m_OutputSlot": {
"m_Node": {
"m_Id": "4c7f1581c6a3415b9eb1427d8a342ae8"
},
"m_SlotId": 5
},
"m_InputSlot": {
"m_Node": {
"m_Id": "465566306f2a494a95019186348cbedc"
},
"m_SlotId": 2
}
},
{
"m_OutputSlot": {
"m_Node": {
"m_Id": "71bc24d9794e441a856428e2911e4757"
},
"m_SlotId": 0
},
"m_InputSlot": {
"m_Node": {
"m_Id": "4c7f1581c6a3415b9eb1427d8a342ae8"
},
"m_SlotId": 6
}
},
{
"m_OutputSlot": {
"m_Node": {
"m_Id": "7ebe427b9b79453498c6e9c47abb24e0"
},
"m_SlotId": 0
},
"m_InputSlot": {
"m_Node": {
"m_Id": "4c7f1581c6a3415b9eb1427d8a342ae8"
},
"m_SlotId": 2
}
},
{
"m_OutputSlot": {
"m_Node": {
"m_Id": "dd621be3fb4749eabdcb5a6b9c66107e"
},
"m_SlotId": 0
},
"m_InputSlot": {
"m_Node": {
"m_Id": "4c7f1581c6a3415b9eb1427d8a342ae8"
},
"m_SlotId": 3
}
}
],
"m_VertexContext": {
"m_Position": {
"x": 0.0,
"y": 0.0
},
"m_Blocks": []
},
"m_FragmentContext": {
"m_Position": {
"x": 0.0,
"y": 0.0
},
"m_Blocks": []
},
"m_PreviewData": {
"serializedMesh": {
"m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}",
"m_Guid": ""
},
"preventRotation": false
},
"m_Path": "Sub Graphs",
"m_GraphPrecision": 1,
"m_PreviewMode": 2,
"m_OutputNode": {
"m_Id": "465566306f2a494a95019186348cbedc"
},
"m_ActiveTargets": []
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
"m_ObjectId": "029c669d708c41d8b3aa4437a4fa8f20",
"m_Id": 3,
"m_DisplayName": "Frame",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "Frame",
"m_StageCapability": 3,
"m_Value": 0.0,
"m_DefaultValue": 0.0,
"m_Labels": []
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.PropertyNode",
"m_ObjectId": "04af26dd250d4191a53745a76674dd57",
"m_Group": {
"m_Id": ""
},
"m_Name": "Property",
"m_DrawState": {
"m_Expanded": true,
"m_Position": {
"serializedVersion": "2",
"x": -306.0,
"y": -70.0,
"width": 151.0,
"height": 34.0
}
},
"m_Slots": [
{
"m_Id": "9acbab9025484b46bf0febcbf8fb100b"
}
],
"synonyms": [],
"m_Precision": 0,
"m_PreviewExpanded": true,
"m_PreviewMode": 0,
"m_CustomColors": {
"m_SerializableColors": []
},
"m_Property": {
"m_Id": "04ef8a07298944ada89f97ff8fb6a6a9"
}
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
"m_ObjectId": "04ef8a07298944ada89f97ff8fb6a6a9",
"m_Guid": {
"m_GuidSerialized": "51ae1cb7-dffb-4a19-ac6e-40646c7ac24c"
},
"m_Name": "VAT:Position",
"m_DefaultRefNameVersion": 1,
"m_RefNameGeneratedByDisplayName": "VAT:Position",
"m_DefaultReferenceName": "_VAT_Position",
"m_OverrideReferenceName": "",
"m_GeneratePropertyBlock": true,
"m_UseCustomSlotLabel": false,
"m_CustomSlotLabel": "",
"m_Precision": 0,
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"m_Modifiable": true,
"m_DefaultType": 0
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
"m_ObjectId": "2a70fc5b096b4b5a81a2c243b22fa90c",
"m_Id": 1,
"m_DisplayName": "Position",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "Position",
"m_StageCapability": 1,
"m_Value": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_Labels": []
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
"m_ObjectId": "41b425fdc3764fc088114a56e8d13a24",
"m_Guid": {
"m_GuidSerialized": "f5917bf9-b346-472d-9a67-76523a6f28d2"
},
"m_Name": "VAT:Normal",
"m_DefaultRefNameVersion": 1,
"m_RefNameGeneratedByDisplayName": "VAT:Normal",
"m_DefaultReferenceName": "_VAT_Normal",
"m_OverrideReferenceName": "",
"m_GeneratePropertyBlock": true,
"m_UseCustomSlotLabel": false,
"m_CustomSlotLabel": "",
"m_Precision": 0,
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"m_Modifiable": true,
"m_DefaultType": 0
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode",
"m_ObjectId": "465566306f2a494a95019186348cbedc",
"m_Group": {
"m_Id": ""
},
"m_Name": "Output",
"m_DrawState": {
"m_Expanded": true,
"m_Position": {
"serializedVersion": "2",
"x": 204.0,
"y": -94.0,
"width": 97.0,
"height": 101.0
}
},
"m_Slots": [
{
"m_Id": "2a70fc5b096b4b5a81a2c243b22fa90c"
},
{
"m_Id": "cb967cba7e6e47f493f775830469ed22"
}
],
"synonyms": [],
"m_Precision": 0,
"m_PreviewExpanded": true,
"m_PreviewMode": 0,
"m_CustomColors": {
"m_SerializableColors": []
},
"IsFirstSlotValid": true
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.CategoryData",
"m_ObjectId": "49e51d7d288043468031157d5426f687",
"m_Name": "",
"m_ChildObjectList": [
{
"m_Id": "04ef8a07298944ada89f97ff8fb6a6a9"
},
{
"m_Id": "41b425fdc3764fc088114a56e8d13a24"
},
{
"m_Id": "effdc3a24e2646a7ad037b903a53a1f7"
}
]
}
{
"m_SGVersion": 1,
"m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
"m_ObjectId": "4c7f1581c6a3415b9eb1427d8a342ae8",
"m_Group": {
"m_Id": ""
},
"m_Name": "VAT_Load (Custom Function)",
"m_DrawState": {
"m_Expanded": true,
"m_Position": {
"serializedVersion": "2",
"x": -119.9999771118164,
"y": -82.99996948242188,
"width": 239.9999542236328,
"height": 165.99993896484376
}
},
"m_Slots": [
{
"m_Id": "58a8980740564d7194301f83ed581f28"
},
{
"m_Id": "8d89cce444cf467da3cb35834471887e"
},
{
"m_Id": "71d4be4099e54dcf850254329e4152c0"
},
{
"m_Id": "029c669d708c41d8b3aa4437a4fa8f20"
},
{
"m_Id": "5c54f35d04c04af3a4c53746b0eb8d4a"
},
{
"m_Id": "ea1451bb6f4a47de9d65625cee74c186"
}
],
"synonyms": [
"code",
"HLSL"
],
"m_Precision": 0,
"m_PreviewExpanded": false,
"m_PreviewMode": 0,
"m_CustomColors": {
"m_SerializableColors": []
},
"m_SourceType": 1,
"m_FunctionName": "VAT_Load",
"m_FunctionSource": "",
"m_FunctionBody": "OutPosition = VAT_Position.Load(int3(VertexID,Frame,0)).xyz;\nOutNormal = VAT_Normal.Load(int3(VertexID,Frame,0)).xyz;\n"
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
"m_ObjectId": "58a8980740564d7194301f83ed581f28",
"m_Id": 0,
"m_DisplayName": "VAT_Position",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "VAT_Position",
"m_StageCapability": 3,
"m_BareResource": true,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_Guid": ""
},
"m_DefaultType": 0
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
"m_ObjectId": "5c54f35d04c04af3a4c53746b0eb8d4a",
"m_Id": 1,
"m_DisplayName": "OutPosition",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "OutPosition",
"m_StageCapability": 3,
"m_Value": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_Labels": []
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.PropertyNode",
"m_ObjectId": "71bc24d9794e441a856428e2911e4757",
"m_Group": {
"m_Id": ""
},
"m_Name": "Property",
"m_DrawState": {
"m_Expanded": true,
"m_Position": {
"serializedVersion": "2",
"x": -306.0,
"y": -40.0,
"width": 146.0,
"height": 34.0
}
},
"m_Slots": [
{
"m_Id": "fe1cc1e3c90e46f2bb33a66249f380ab"
}
],
"synonyms": [],
"m_Precision": 0,
"m_PreviewExpanded": true,
"m_PreviewMode": 0,
"m_CustomColors": {
"m_SerializableColors": []
},
"m_Property": {
"m_Id": "41b425fdc3764fc088114a56e8d13a24"
}
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
"m_ObjectId": "71d4be4099e54dcf850254329e4152c0",
"m_Id": 2,
"m_DisplayName": "VertexID",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "VertexID",
"m_StageCapability": 3,
"m_Value": 0.0,
"m_DefaultValue": 0.0,
"m_Labels": []
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.VertexIDNode",
"m_ObjectId": "7ebe427b9b79453498c6e9c47abb24e0",
"m_Group": {
"m_Id": ""
},
"m_Name": "Vertex ID",
"m_DrawState": {
"m_Expanded": true,
"m_Position": {
"serializedVersion": "2",
"x": -315.0,
"y": 9.0,
"width": 99.0,
"height": 77.0
}
},
"m_Slots": [
{
"m_Id": "f688e4efa411410380c10752635faea7"
}
],
"synonyms": [],
"m_Precision": 0,
"m_PreviewExpanded": true,
"m_PreviewMode": 0,
"m_CustomColors": {
"m_SerializableColors": []
}
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
"m_ObjectId": "8d89cce444cf467da3cb35834471887e",
"m_Id": 6,
"m_DisplayName": "VAT_Normal",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "VAT_Normal",
"m_StageCapability": 3,
"m_BareResource": true,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_Guid": ""
},
"m_DefaultType": 0
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
"m_ObjectId": "9acbab9025484b46bf0febcbf8fb100b",
"m_Id": 0,
"m_DisplayName": "VAT:Position",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "Out",
"m_StageCapability": 3,
"m_BareResource": false
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
"m_ObjectId": "c5081fa5930544689529ee0868d0dd64",
"m_Id": 0,
"m_DisplayName": "Frame",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "Out",
"m_StageCapability": 3,
"m_Value": 0.0,
"m_DefaultValue": 0.0,
"m_Labels": []
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
"m_ObjectId": "cb967cba7e6e47f493f775830469ed22",
"m_Id": 2,
"m_DisplayName": "Normal",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "Normal",
"m_StageCapability": 1,
"m_Value": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_Labels": []
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.PropertyNode",
"m_ObjectId": "dd621be3fb4749eabdcb5a6b9c66107e",
"m_Group": {
"m_Id": ""
},
"m_Name": "Property",
"m_DrawState": {
"m_Expanded": true,
"m_Position": {
"serializedVersion": "2",
"x": -308.0,
"y": 107.0,
"width": 124.0,
"height": 34.0
}
},
"m_Slots": [
{
"m_Id": "c5081fa5930544689529ee0868d0dd64"
}
],
"synonyms": [],
"m_Precision": 0,
"m_PreviewExpanded": true,
"m_PreviewMode": 0,
"m_CustomColors": {
"m_SerializableColors": []
},
"m_Property": {
"m_Id": "effdc3a24e2646a7ad037b903a53a1f7"
}
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
"m_ObjectId": "ea1451bb6f4a47de9d65625cee74c186",
"m_Id": 5,
"m_DisplayName": "OutNormal",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "OutNormal",
"m_StageCapability": 3,
"m_Value": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_Labels": []
}
{
"m_SGVersion": 1,
"m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
"m_ObjectId": "effdc3a24e2646a7ad037b903a53a1f7",
"m_Guid": {
"m_GuidSerialized": "b24f7761-559d-42e5-a8ea-f2512d5aa01e"
},
"m_Name": "Frame",
"m_DefaultRefNameVersion": 1,
"m_RefNameGeneratedByDisplayName": "Frame",
"m_DefaultReferenceName": "_Frame",
"m_OverrideReferenceName": "",
"m_GeneratePropertyBlock": true,
"m_UseCustomSlotLabel": false,
"m_CustomSlotLabel": "",
"m_Precision": 0,
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_Value": 0.0,
"m_FloatType": 0,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
"m_ObjectId": "f688e4efa411410380c10752635faea7",
"m_Id": 0,
"m_DisplayName": "Out",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "Out",
"m_StageCapability": 1,
"m_Value": 0.0,
"m_DefaultValue": 0.0,
"m_Labels": []
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
"m_ObjectId": "fe1cc1e3c90e46f2bb33a66249f380ab",
"m_Id": 0,
"m_DisplayName": "VAT:Normal",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "Out",
"m_StageCapability": 3,
"m_BareResource": false
}

10
Samples~/VertexAnimationTextures/Shaders/Sample VertexAnimationTexture.shadersubgraph.meta


fileFormatVersion: 2
guid: 820f4ff7bcb969b4386459c5b8926280
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3}

1001
Samples~/VertexAnimationTextures/Shaders/VAT-Simple.shadergraph
文件差异内容过多而无法显示
查看文件

10
Samples~/VertexAnimationTextures/Shaders/VAT-Simple.shadergraph.meta


fileFormatVersion: 2
guid: 1946c15e3866fe2479420e97e43fca87
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}

8
Samples~/VertexAnimationTextures/VFX.meta


fileFormatVersion: 2
guid: 3a547558823a83d45815d295e452071d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
Samples~/VertexAnimationTextures/VFX/VAT-Characters.vfx
文件差异内容过多而无法显示
查看文件

7
Samples~/VertexAnimationTextures/VFX/VAT-Characters.vfx.meta


fileFormatVersion: 2
guid: e3c34dc448c00da49bc0021d70899332
VisualEffectImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
Samples~/VertexAnimationTextures/VFX/VAT-SingleParticle.vfx
文件差异内容过多而无法显示
查看文件

7
Samples~/VertexAnimationTextures/VFX/VAT-SingleParticle.vfx.meta


fileFormatVersion: 2
guid: 57462e4cb07c02a46bb23865758f801d
VisualEffectImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

部分文件因为文件数量过多而无法显示

正在加载...
取消
保存