【问题标题】:load / remove multiple models in PhiloGL - WebGL在 PhiloGL - WebGL 中加载/删除多个模型
【发布时间】:2014-02-20 21:28:13
【问题描述】:

我正在尝试使用 philoGL 从主 webgl 视图中加载和删除模型。 在原始脚本中,我找到了加载一个模型的地方。 但是,我想删除第一个模型并用第二个替换它。

这是模型在开始时的加载方式:

model = new O3D.Model({
    program: 'default',
    drawType: (item[0] == 't') ? "TRIANGLES" : "TRIANGLE_STRIP",
    vertices: item[1],
    normals: item[2],
    colors: item[3],
    indices: item[4]
});
scene.add(model);

我正在考虑运行以下代码:

scene.remove(model);
scene.add(otherModel);

任何人的想法? 谢谢, EL

【问题讨论】:

    标签: webgl webgl-extensions


    【解决方案1】:

    在philoGL 中替换model 的最佳方法是

    var indexModel = scene.models.indexOf(model);
    
    if (indexModel > -1) {
       models.splice(indexModel, 1, otherModel);
       scene.defineBuffers(otherModel);
    }
    

    这是因为您无法跟踪您想用 PhiloGL 拥有的方法替换的 model 的位置。要在model 中执行操作,您必须直接访问Scene 对象的models 属性。

    【讨论】:

    • 谢谢。我得到了这个工作。一个问题仍然存在 -> 当应用了相机旋转等变换时,重新加载模型将在初始方向显示它。我可以以某种方式更新模型坐标吗?
    • 似乎平移/缩放是同步的,但不是模型特定的旋转。我在不同条件下显示同一对象的模型。因此,我希望对所有模型进行一致的轮换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多