Skip to content

Matrix64/ChannelDataBaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Channel Data Baker


7da1ce68fa3f32e3c96b609779bf1c1e.png

f0a76f6a2d515f6862c2be74d4a39613.gif

插件的原型是ArtStation - Blender Addon - UVs/VCol Data Baker 原作者的插件功能非常丰富,感兴趣的话也欢迎支持原作者插件

这个插件是复刻原版插件的轴心烘焙功能的版本,因为其他功能目前我还没用到就先写到这了

插件的主要目的是解决在制作植物等多轴心物体时,合并物体后轴心丢失导致不能单独操作的问题

Features


  • 支持烘焙到uv通道和顶点色
  • 支持通道压缩,通道混用
  • 支持批量轴心重置

Installation


  1. 在release页面下载最新版本压缩包
  2. blender中进行安装或直接拖拽到script目录解压缩
  3. addon中启用插件
  4. 在侧栏Tool中可以找到插件面板

Usage


Transform

PackMode

  • Individual

可以独立操作xyz轴信息,主动选择将特定轴向信息写入到选定的通道中 如果使用了顶点色模式 vCol , 则需要同时将自动计算出的 Pivot X Scale 值输入到解压缩的计算过程中,Blender文件里有提供一个GeometryNode作为解压缩计算的演示

  • AB Pack
    • 只支持轴向在 [-1,1] 范围内的情况

    • 只支持写入UV

    • XY XZ YZ 中选择一个组合,按特定精度压缩后写入到选定的通道中,原作者的版本是支持自选两个通道进行组合,因为用不到 XX YY YX 等这种非常规的情况,而且解压缩使用的时候也可以自己调整通道组合,所以压缩的时候就枚举了3种常用组合

    • AB Pack使用的压缩算法原型来自UE的 PackTwoNormalizedFloatsUnpackTwoNormalizedFloats 不同的是压缩的时候做了 [-1,1][0,1] 的范围映射,解压缩的时候需要做相反的计算

    • 压缩精度可选,数值越大,坐标偏差越少,但对UV通道精度要求也越大,这里给出一组随机坐标计算当作参考,其中 interval 就是实际存储在uv通道中的信息

      precision input output interval difference
      2 (0.7202859774568633, -0.055844770385788944) (1.0, -1.0) 2 0.984718
      4 (0.8508603456272517, -0.6544794505383809) (1.0, -0.33333333333333337) 13 0.354087
      8 (-0.30984691836301437, 0.08626290333469866) (-0.4285714285714286, 0.1428571428571428) 20 0.131523
      16 (0.10165067933280425, 0.5890218740711508) (0.06666666666666665, 0.6000000000000001) 140 0.036666
      32 (0.004965980245656754, 0.5509319732597933) (0.032258064516129004, 0.5483870967741935) 536 0.027410
      64 (-0.1218712886260771, -0.8792295489675745) (-0.11111111111111116, -0.873015873015873) 1796 0.012425
      128 (0.4325878864928696, 0.8220580562311572) (0.4330708661417322, 0.8267716535433072) 11764 0.004738
      256 (0.2637798338522055, 0.9003861702068061) (0.26274509803921564, 0.8980392156862744) 41458 0.002565
      512 (-0.5983253121497414, -0.2636568232570078) (-0.5968688845401174, -0.264187866927593) 52924 0.001550
      1024 (-0.2608911951791717, -0.9253242917747284) (-0.26099706744868034, -0.9257086999022482) 387110 0.000399
      2048 (0.28402454782820663, 0.015105013856535843) (0.2838299951148022, 0.01514411333659016) 2692111 0.000198
      4096 (0.9293613456197038, -0.3785726448157767) (0.9291819291819292, -0.37875457875457874) 16180472 0.000256
      8192 (-0.5424315951472676, 0.9166846172969674) (-0.5424246123794408, 0.9167378830423636) 15359658 0.000054
    • 关于解压缩,可以使用这个方法

	  def float_to_vec2(input_float, precision):  
	    x = input_float // precision  
	    y = input_float % precision  
	    output = (x / (precision - 1) * 2 - 1, y / (precision - 1) * 2 - 1)  
	    return output
  • XYZ Pack
    • 只支持轴向在 [-1,1] 范围内的情况
    • 只支持写入UV
    • 将坐标的xyz信息一起压缩到选定的通道中
    • 压缩和解压缩的算法是直接使用了原作者在推特上公开的信息b8a0a4730a8dd9bdb69fda1230e8b935.md.jpg

Get pivot x scale

用于获取当前所选物体的x轴向上的极值,作为缩放参数用于数据在顶点色通道的压缩和解压缩,这个值会在每次Bake的时候自动更新,也可以用这个按钮来手动获取更新

Linear Mask

实现以当前选中物体的碰撞盒目标轴向从下向上从0到1赋值的操作,轴向可切换为世界坐标或者局部坐标,可以写入到顶点色或者uv通道中

Utils

Delete UV Attribute

会删除所选物体的名字里带有 pos_UVMap 的UV 通道

Delete vCol Attribute

会删除所选物体的名字里带有 pos_vcolor 的顶点色通道

Batch Active Attribute

在输入框中输入想要激活的属性名,选择好物体后点击按钮可以批量激活对应的属性,激活的属性可以在Solid渲染状态的Attribute模式查看

Batch Smart Pivot

可以让批量选中的物体的轴心设置到编辑模式下每个物体自身所选元素的中心位置,而不是所有选中元素的中心位置

Asset


这里提供blender源文件和GeometryNode是为了方便理解功能和调试效果,脚本本身并不需要这个blender源文件 699bdb55202c6e44b19a6a7c1802fc5e.png

Link


About

This addon can bake the custom information into UV or vertex color

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages