我正在尝试使用OpenGL ES在iPhone上进行动画制作.我能够在Blender 3D软件中完成动画.我可以将.obj文件从Blender导出到OpenGL,它可以在iPhone上运行.
但是我无法将我的动画作品从Blender 3D导出到OpenGL.有谁可以帮我解决这个问题?
我正在使用mrdoob Blender Export Plugin(io_mesh_threejs)导出到三个JS,但导出的.js或.dae对象不包含对纹理贴图文件的任何引用.我需要一种特殊的方式来导出对象吗?或者,我是否需要一种特殊的方法将地图应用于Blender 2.65中的对象,以便导出器包含它.最后,如果没有办法,我可以在JS文件中手动添加纹理吗?
出口前的搅拌机

导出的JSON对象(不参考纹理)
{
"metadata" :
{
"formatVersion" : 3.1,
"generatedBy" : "Blender 2.65 Exporter",
"vertices" : 8,
"faces" : 6,
"normals" : 8,
"colors" : 0,
"uvs" : [4],
"materials" : 1,
"morphTargets" : 0,
"bones" : 0
},
"scale" : 1.000000,
"materials" : [ {
"DbgColor" : 15658734,
"DbgIndex" : 0,
"DbgName" : "Material",
"blending" : "NormalBlending",
"colorAmbient" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865],
"colorDiffuse" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865],
"colorSpecular" : [0.5, 0.5, 0.5],
"depthTest" : …Run Code Online (Sandbox Code Playgroud) 问:在Blender 2.64中,我有一个处于编辑模式的网格,其中选择了一些顶点.如何在Python脚本中获取或生成所选顶点的索引列表?
我发现Blender Python API参考完全容易导航,而Google主要指向过时的API.对于Blender脚本专家来说,这无疑是微不足道的.
索引应与网格的OBJ导出中的顶点索引一致.我想编写一个脚本导出文本文件中的顶点索引,以便在C++程序中访问这些顶点.
从单个立方体开始,我更改了一些属性(材质,颜色,反射属性),然后将对象复制到十二个立方体中,将它们放置在场景中.渲染后,我想改变它们的颜色.我该如何有效地做到这一点?
我已经找到了多种方法:
B然后选择矩形),连接网格ctrl-j,更改颜色,tab进入编辑模式,P再次分离对象.这是非常可能的,因为我的所有物体的网格都没有触及.基础文档数字1容易出错,而且对于常规使用来说太单调乏味.2号更专业,更糟糕.只选择多个对象并更改值不起作用,因为属性选择仅适用于仅作为选定对象之一的活动对象.
由于这是一个常见的用例,我可能错过了简单的方法.它是什么?
我正在尝试使用变形目标和three.js.但是,似乎没有太多关于这个主题的文档.
正如我正在查看源代码:
morphTargetInfluences []
似乎是神奇的......这是如何运作的?我该如何使用它?值是1全力吗?如何区分同一模型上的不同变形目标?我只是想了解:
morphTargetInfluences[].
Run Code Online (Sandbox Code Playgroud)
提前致谢
我正在尝试将此模型转换为three.js模型格式:
http://tf3dm.com/3d-model/ninja-48864.html
这是我到目前为止所尝试的:
我使用默认插件在blender中导入了ms3d文件.在搅拌机中,动画和网格看起来是正确的; 但是,骨骼仅呈现为线条.然后我使用three.js导出器将其导出到js.这会产生正确的网格,但动画未正确导出.仅导出骨骼位置(在此特定模型中很少使用),根本不旋转(除少数身份四元数外).
看来我必须以某种方式在混合器中修改模型,但由于我是3D建模的完全新手,我有点迷茫.我还看了关于blender + three.js的其他问题,但没有一个提示(应用位置/旋转/比例等)有所不同.它也可能是three.js导出器中的错误.
任何人都可以帮助我进行转换,无论如何?
我已经通过ColladaLoader成功导入了.dae场景.
问题是,我需要在几个.dae文件之间切换.
我似乎无法正确实现dispose方法.
dae.traverse(function(obj) {
console.log('unloading ' + obj.id);
scene.remove(obj);
if(obj.geometry)
obj.geometry.dispose();
if(obj.material)
obj.material.dispose();
if(obj.mesh)
obj.mesh.dispose();
if(obj.texture)
obj.texture.dispose();
});
scene.remove(dae);
Run Code Online (Sandbox Code Playgroud)
我可能做错了什么?
非常感谢提前!
编辑:
这是整个代码.
var renderer = null;
var scene = null;
var camera = null;
var controls = null;
var dae = null;
//var loader = null;
function init() {
renderer = new THREE.WebGLRenderer( { alpha: 1, antialias: true, clearColor: 0xffffff } );
renderer.setSize( 800, 600 );
var elem = $('.main3d')[0];
elem.appendChild( renderer.domElement );
scene = new THREE.Scene();
camera …Run Code Online (Sandbox Code Playgroud) 我一直在寻找创建某种物理模拟的不同方法.我想要做的是在一段时间内在各种力的作用下对身体的运动进行3D建模.我原本看着使用物理引擎(Bullet)和3d引擎(Irrlicht)在c ++中编写代码.但是,我注意到Blender已经允许人们进行物理模拟,因为Bullet与它集成(如果我错了,请纠正我).这似乎可以让我更容易按照我想要的方式设计模拟(使用Blender广泛的GUI).
我的问题是我想使用模拟的结果(基本上是每个时间步的x,y,z,俯仰,滚动,偏航)来输入c/c ++代码(如果它更容易用于其他语言)这个).这可以用Blender完成吗?有没有一个更好的软件包,我忽略了?谢谢,任何建议表示赞赏.
有没有办法显示一个简单的消息框,其中包含来自blender脚本的文本?例如,如果我在执行期间遇到错误.
我在Blender项目中有几个视频,尺寸大于1280x720,这是我的输出尺寸.我不想重新调整我的视频以适应输出尺寸,而是将它们裁剪为1280x720像素,以便丢弃场景的一部分.这样,剩下的区域似乎不会失真.
我怎样才能做到这一点?
blender ×10
three.js ×4
animation ×2
export ×2
javascript ×2
python ×2
3d ×1
attributes ×1
blender-2.67 ×1
c ×1
c++ ×1
collada ×1
dimension ×1
editing ×1
json ×1
morphing ×1
object ×1
opengl-es ×1
physics ×1
python-3.x ×1
scripting ×1
simulation ×1
skinning ×1
video ×1
webgl ×1