ThreeJS 往shader 添加一个#define

459 阅读1分钟

添加一个define需要修改的地方

  • shader里面新增变量
    • WebGLProgram函数 prefixVertex prefixFragment变量
      • 这里面的添加#define的
      • 例如:parameters.useUserColor ? '#define USE_USER_COLOR' : '',
    • WebGLPrograms函数 parameterNames 变量
      • 在getProgramCacheKey进行对比用的 判断是否更新 parameters[parameterNames[i]]
      • 例如:parameterNames = ['useUserColor']
    • getParameters函数 parameters 变量
      • 在getProgramCacheKey进行对比用的 判断是否更新 parameters
      • 例如:parameters = {useUserColor: material.useUserColor,}
  • material里面新增属性
    • MeshPhysicalMaterial 构造函数
      • 例如:this.useUserColor = true;
    • MeshPhysicalMaterial copy函数
      • this.useUserColor = source.useUserColor;