Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 将脚本着色器转换为js着色器_Three.js - Fatal编程技术网

Three.js 将脚本着色器转换为js着色器

Three.js 将脚本着色器转换为js着色器,three.js,Three.js,穿上制服 uniforms: { "time": { type: "f", value: 0.0 } }, 你在哪里 属性浮动频率; 属性vec3自定义颜色;走?tia(刚刚添加了我试图转换的代码) 并且找不到使用顶点属性的示例。tia这个问题不是很清楚,但我相信你对基本概念有点困惑 着色器不应转换为javascript。它们是用GLSL语言编写的,浏览器也能理解并传递给显示驱动程序 统一是在Javascript代码和GLSL着色器之间传递变量的方式。因此,您只需要关心Javas

穿上制服

uniforms: {

    "time":  { type: "f", value: 0.0 }

},
你在哪里

属性浮动频率; 属性vec3自定义颜色;走?tia(刚刚添加了我试图转换的代码)


并且找不到使用顶点属性的示例。tia

这个问题不是很清楚,但我相信你对基本概念有点困惑

着色器不应转换为javascript。它们是用GLSL语言编写的,浏览器也能理解并传递给显示驱动程序


统一是在Javascript代码和GLSL着色器之间传递变量的方式。因此,您只需要关心Javascript端的制服。着色器脚本中的其他代码是着色器GLSL代码的一部分,不能与javascript共享或转换为javascript,如果要对其进行更改,则需要修改着色器本身。

Lee Stemkoski善意地提供了以下答案:

THREE.BasicShader = {

uniforms: {},

vertexShader: [
"uniform float time;", 
"attribute float customFrequency;",
"attribute vec3 customColor;",
"varying vec3 vColor;",
"void main()",
"{",
"vColor = customColor;",
"vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",
"gl_PointSize = (1.0 + sin( customFrequency * time )) * 8.0 * ( 300.0 / length(    mvPosition.xyz ) );",
"gl_Position = projectionMatrix * mvPosition;",
"}"
].join("\n"),

fragmentShader: 
[

  ((similar to above))
].join(“\n”)


这里没有问题。ah为没有花时间正确表述问题而道歉:-(需要将上述着色器脚本转换为格式:oops-return key!=新行:-(
THREE.BasicShader = {
    uniforms: {},
vertexShader: [
        "void main() {",
        "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
    "}"
    ].join("\n"),
    fragmentShader: [
        "void main() {",
        "gl_FragColor = vec4( 1.0, 0.0, 0.0, 0.5 );",
    "}"
    ].join("\n")
};
THREE.BasicShader = {

uniforms: {},

vertexShader: [
"uniform float time;", 
"attribute float customFrequency;",
"attribute vec3 customColor;",
"varying vec3 vColor;",
"void main()",
"{",
"vColor = customColor;",
"vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",
"gl_PointSize = (1.0 + sin( customFrequency * time )) * 8.0 * ( 300.0 / length(    mvPosition.xyz ) );",
"gl_Position = projectionMatrix * mvPosition;",
"}"
].join("\n"),

fragmentShader: 
[

  ((similar to above))
};