首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >THREE.js着色器仅在调整窗口大小后显示

THREE.js着色器仅在调整窗口大小后显示
EN

Stack Overflow用户
提问于 2014-11-27 03:31:33
回答 1查看 63关注 0票数 1

我是THREE.js的新手,我正在做一些着色器的实验。由于某些原因,this one只有在我调整窗口大小时才会出现。代码是here。为什么它只在调整窗口大小后才出现,有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-27 16:40:29

我认为问题是因为您只在函数onWindowResize中为分辨率uniform赋值:

代码语言:javascript
运行
复制
uniforms.resolution.value.x = window.innerWidth;
uniforms.resolution.value.y = window.innerHeight;

由于在初始化统一函数( createContent())时,您只需为分辨率分配一个新的向量(new THREE.Vector2()),因此它会自动获得(0,0)坐标。看看你的着色器代码,然后出现一些除以0的操作,在我看来,这就是当屏幕出现时不渲染的原因。

解决方案可能是在javascript代码中声明统一分辨率时,也将坐标分配给它,如下所示(函数createContent()):

代码语言:javascript
运行
复制
var initialResolution = new THREE.Vector2(window.innerWidth,window.innerHeight);
uniforms = {time: {type: "f",  value: 1.0},
            mouseX:     {type: "f",  value: 0.0},
            mouseY:     {type: "f",  value: 0.0},
            resolution: {type: "v2", value: initialResolution}
            [...]
           }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27157423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档