gpt4 book ai didi

javascript - 何时将 Three.js 纹理发送到 GPU?

转载 作者:行者123 更新时间:2023-11-30 10:06:34 25 4
gpt4 key购买 nike

我正在构建一个从服务器动态加载图像以用作场景中的纹理的应用程序,我正在研究如何正确加载/卸载这些纹理。

我的简单问题是;在 Three.js 调用图中,纹理会在何处加载和/或更新到 GPU 中?是在我创建纹理时 (var tex = new THREE.Texture()) 还是当我将它应用于网格时 (var mesh = new THREE.Mesh(geom, mat))? Texture class of Three 建议在创建纹理时不加载纹理。但我在 Mesh 中找不到任何东西要么。

我错过了什么吗?纹理是在渲染循环中加载的,而不是在对象创建时加载的吗?这可能是有道理的。

提前致谢!

最佳答案

所有 GPU 指令都已抽象到 WebGLRenderer。

这意味着在 three.js 中创建的任何对象都不会与 GPU 进行丝毫交互,直到您调用:

renderer.render(scene, camera);

此调用将自动设置所有相关的 WebGL 缓冲区、着色器、属性、制服、纹理等。所以直到那个时间点,所有三个 .js 网格及其 Material 和几何图形实际上只是很好的抽象对象,完全分离从它们呈现到屏幕的方式(为什么假设它们会被呈现?)。

主要原因是还有其他渲染器,例如 CanvasRenderer,它们具有完全不同的 API。

关于javascript - 何时将 Three.js 纹理发送到 GPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28807302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com