gpt4 book ai didi

JavaScript 构造函数属性无法识别 - Babylon.js

转载 作者:行者123 更新时间:2023-11-27 22:32:16 26 4
gpt4 key购买 nike

最简单的方法是提供一个指向 Babylon.js Playground 的链接,而不是不方便地在此处粘贴整个代码。如果您不熟悉它,它基本上是一个类似于 jsfiddle 的环境,但专门用于 Babylon.js webGL渲染。它已经启动了 Canvas 、引擎和渲染循环(术语?)

http://www.babylonjs-playground.com/#LYEU3#0

我已经为 3 种不同的星星类型创建了构造函数:YellowStar、WhiteStar 和 RedStar。我将它们粘贴到 Playground 代码中,但在本地,这 3 个函数位于单独的文件中。您会注意到 YellowStar 的发射粒子没有渲染图像,这很好,因为它与问题无关。前景中较大的白色球体应该是发射红色的(红星物体)。背景中较小的白色球体(WhiteStar objectcs)是白色的,正如它们应该的那样,但自发光属性对它们也不起作用。

我知道这是我构建它们的方式的问题。因为没有那么多共同的属性,所以我没有设置从主 Star 构造函数继承。为对象传递球体和 Material 参数会在某种程度上破坏创建构造函数的便利性。但是我做错了,没有意识到或没有考虑到导致 .mat 属性不起作用,因此 Material 无法渲染。我想让我的所有对象(最终包括行星),源自来自一个文件。

每次我遇到无法解决的问题时,通常都与范围有关。白星和红星的 Material 特性尚未得到认可。我不明白这一点,因为每个 .mat 的范围应该限制在其自己的功能内。

var YellowStar = function (position, size, scene) {
this.sphere = BABYLON.Mesh.CreateSphere("sphere1", 30, 30*size, scene);
this.mat = new BABYLON.StandardMaterial("white", scene);
this.mat.diffuseTexture = new BABYLON.Texture("textures/suntexture.jpg", scene);
this.mat.specularColor = new BABYLON.Color3(0, 0, 0);
this.sphere.material = this.mat;
this.sphere.position = position;

/*...this material works...*/
};

var WhiteStar = function(position, size, scene){
this.sphere = BABYLON.Mesh.CreateSphere("whiteStar", 20, 15*size, scene);
this.mat = new BABYLON.StandardMaterial("white", scene);
this.mat.emissiveColor = new BABYLON.Color3(1, 1, 1);
this.sphere.material = this.mat; /* doesn't work */
}

var RedStar = function (position, size, scene) {
this.sphere = BABYLON.Mesh.CreateSphere("redStar", 20, 30*size, scene);
this.mat = new BABYLON.StandardMaterial("red", scene);
this.mat.emissiveColor = new BABYLON.Color3(0.714, 0.239, 0.169);
this.sphere.material = this.mat; /*doesnt work*/

};

Babylon 确实有一个社区,但问题更多地与引擎相关,而且我在这里更成功地回答了一般的 Javascript 问题。谢谢

最佳答案

摆弄它之后,看起来您必须在自发光颜色起作用之前显式添加/定义漫反射颜色。我不知道为什么。

注意,白星发光颜色完全是白色,所以我不确定你如何知道它是否有效。

HTH

关于JavaScript 构造函数属性无法识别 - Babylon.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39455293/

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