LZH00000 2018-12-08 07:57 采纳率: 75%
浏览 2194
已结题

unity shader 向量乘法问题

#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw)
tex.xy等价于float2(x,y),那么tex.xy * name##_ST.xy 应该是一个标量才对,而这里两个相乘应该是一个二维向量。在swizzle操作中的乘法和float的点乘是不一样的吗?

  • 写回答

3条回答 默认 最新

  • 流川枫@ 2018-12-10 03:58
    关注

    o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);
    o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    这里用的是 * ,而不是Dot,这样乘的结果是 依然是向量:(x1,y1) * (x2,y2)= (x1*x2,y1*y2)

    评论

报告相同问题?

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计