标签: 3d

three.js - 如何动态更改对象的不透明度?

这是我的目标:

var object = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { map: THREE.ImageUtils.loadTexture( "image.png" ) } ) );
object.position.set(2, 3, 1.5);
Run Code Online (Sandbox Code Playgroud)

我在init()中创建了这个对象之后; 功能,我可以直接转到对象并改变他的位置,如下所示:

object.position.x = 15;
Run Code Online (Sandbox Code Playgroud)

现在问题是如何改变纹理的不透明度???

谢谢 :-)

javascript 3d three.js

34
推荐指数
3
解决办法
5万
查看次数

对于实时图形编程,C++的最佳替代方案是什么?

C++只是通过让我微观管理我自己的记忆来吸引我太多的时间,让我打字太多(你好std::vector<Thingy>::const_iterator it = lotsOfThingys.begin()),并且厌倦了我很长的编译时间.什么是严肃的实时图形编程的唯一最佳选择?垃圾收集是必须的(必要时能够避免使用垃圾),速度必须与C++竞争.访问C libs的合理故事也是必须的.

(完全披露:我对此有自己的答案,但我很有兴趣看到其他人发现什么是实时图形工作的C++的好替代品.)

编辑:感谢大家的深思熟虑的回复.鉴于这个问题确实没有"正确"的答案,我不会选择任何特定的答案.除此之外,我只选择我喜欢的语言作为C++替代品,这不太公平.

c++ 3d graphics real-time

33
推荐指数
11
解决办法
2万
查看次数

Unity,Torque3D,Google O3D,WebGl ......哪个可供选择?

用于开发交互式3d Web应用程序,建议使用哪种引擎?

我知道WebGL已经被宣布在不久的将来(1〜2年)成为所有浏览器的标准.

我担心通过将时间投入到像Unity这样的专有游戏引擎中,一旦出现无插件的开源3D引擎(webgl,用于3D的JavaScript),扭矩就不会很大.

这是一件令人担心的蠢事吗?我应该从Unity开始(它的演示和工具是令人兴奋的).

3d web-applications unity-game-engine o3d webgl

33
推荐指数
4
解决办法
1万
查看次数

我应该使用哪种3D模型格式?

我正在写一个游戏引擎,我想知道我应该使用什么3D模型格式/加载/导出?Obj看似普遍且容易,但它似乎也不可靠,因为那里的大多数模型都包含错误,并且它不存储任何接近其他格式的地方.

似乎有专门用于MD2/3/5等游戏的格式,但我不确定,如果我建模我会使用wings3d,而且我不知道除了纯粹加载我需要的内容以及格式ID必须支持的其他细节实现,比如我需要实现IK?我可以使用脚本化的每片动画而不是反向运动学和骨骼绑定吗?

3d graphics model collada

32
推荐指数
2
解决办法
3万
查看次数

如何在浏览器中使用WebGL实现FPS视图?

我正在使用Copperlicht,我想创建一个可用的FPS.演示控件显示了为什么浏览器环境会让这很痛苦.

为了实现FPS摄像机控制,您需要跟踪相对鼠标位置 - 换句话说,它的运动,而不是其绝对屏幕坐标.除非用户在页面内启动拖动事件,否则鼠标可以随时离开浏览器(理所当然地)并且无法跟踪.单击事件会更改焦点并阻止应用程序使用鼠标数据作为输入.

拖动期间可以跟踪鼠标位置,但这需要用户按住鼠标左键.这不好,因为左击通常用于其他事情.按下按钮也很累,很麻烦.

我唯一能想到的是自动鼠标中键.鼠标中键按下可在浏览器中保持焦点,并在浏览器焦点中将左/右点击事件保持在浏览器窗口之外.是否可以使用JavaScript使鼠标中键保持按下状态?

如果没有,是否有一个"纯粹"的解决方案呢?我宁愿不去flash或Java或插件作为答案.

javascript 3d html5 webgl copperlicht

32
推荐指数
1
解决办法
4327
查看次数

将3D点投影到2D平面

设A是我有3D坐标x,y,z的点,我想将它们转换为2D坐标:x,y.投影应在由给定法线定义的平面上正交.平凡的情况,其中法线实际上是其中一个轴,它很容易解决,只是简单地消除了一个坐标,但其他情况如何更容易发生?

math 3d geometry 2d plane

32
推荐指数
2
解决办法
4万
查看次数

Android OpenGL .OBJ文件加载器

似乎有很多OBJ网格文件加载器已经开发出来供Android平台上使用.我想知道是否有人有这方面的经验,并可以提供一个似乎最适合他们的建议.

这是我的标准:

  • 轻量级(小文件大小),
  • 优化速度,
  • 易于实施,
  • 提供某种纹理映射支持(不确定我是否需要这个 - 在我的编码中没有足够的知识来知道我是否需要一个库来执行此操作,或者OpenGL ES是否能够完成我需要的所有工作在这里)和
  • 可用于商业销售的Android应用.

以下是我发现的一些库.

我也很乐意听到不在此列表中的其他人.

3d android opengl-es mesh

31
推荐指数
2
解决办法
6万
查看次数

R:从x,y,z绘制3D表面

想象我有一个3列矩阵
x,y,z,其中z是x和y的函数.

我知道如何绘制这些点的"散点图" plot3d(x,y,z)

但是,如果我想要一个表面,我必须使用其他命令,如surface3d问题是它不接受与plot3d相同的输入它似乎需要一个矩阵与

(nº elements of z) = (n of elements of x) * (n of elements of x)
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个矩阵?我尝试使用命令interp,就像我需要使用等高线图时一样.

如何在不计算此矩阵的情况下直接从x,y,z绘制曲面?如果我的分数太多,那么这个矩阵就太大了.

干杯

3d plot r matrix rgl

31
推荐指数
4
解决办法
10万
查看次数

建议在Ogre,Irrlicht和OpenSceneGraph之间更好的C++ 3D引擎

我对3D图形非常熟悉(我为一个学术项目开发了一个简单的3D游戏引擎).但是现在我必须用C++开发一个音频/视频工具,里面还需要一些3D功能,所以我不能依赖我的小程序,但我需要一个具有高性能标准和功能的3d引擎框架.

我想知道您对这三种产品之间3D引擎的最佳选择的看法,我听说过:

  1. 怪物
  2. Irrlicht的
  3. OpenSceneGraph的

我需要的要求如下:

  1. 跨平台支持
  2. 高性能
  3. 支持视频编解码器
  4. 许可证(可能选择发布使用所选框架编写的产品的开源和闭源版本)
  5. 可用的图形效果的质量和数量

回答请记住,我不是在开发视频游戏,而我对最佳框架的选择并不取决于难以使用的程度.我只对框架提供的功能感兴趣.

我想更好地理解使用一个框架而不是另一个框架的差异和优点.

3d comparison irrlicht openscenegraph ogre

31
推荐指数
2
解决办法
2万
查看次数

使用Projection将World坐标转换为Three.js中的Screen坐标

有几个优秀的堆栈问题(1,2)关于three.js所unprojecting,那就是如何转换(X,Y)鼠标在浏览器中的(X,Y,Z)坐标three.js所帆布空间坐标.他们大多遵循这种模式:

    var elem = renderer.domElement, 
        boundingRect = elem.getBoundingClientRect(),
        x = (event.clientX - boundingRect.left) * (elem.width / boundingRect.width),
        y = (event.clientY - boundingRect.top) * (elem.height / boundingRect.height);

    var vector = new THREE.Vector3( 
        ( x / WIDTH ) * 2 - 1, 
        - ( y / HEIGHT ) * 2 + 1, 
        0.5 
    );

    projector.unprojectVector( vector, camera );
    var ray = new THREE.Ray( camera.position, vector.subSelf( camera.position ).normalize() );
    var intersects = ray.intersectObjects( scene.children );
Run Code Online (Sandbox Code Playgroud)

我一直试图反过来 - 而不是从"屏幕到世界"空间,从"世界到屏幕"空间.如果我知道Three.js中对象的位置,我该如何确定它在屏幕上的位置?

似乎没有任何已发布的解决方案来解决此问题. …

javascript 3d three.js

31
推荐指数
3
解决办法
3万
查看次数