我正在学习ThreeJS作为WebGL的接口.谢谢你们以前的帮助.
我正在开发一种新的3D动态方法,并希望在教科书中使用3D组件.例如:http://eon.sdsu.edu/~impellus/DMF/
他们不是最好的,但我正在学习.
与此同时,我想研究2D Statics和2D INTERACTIVE Free Body Diagrams中的一些动画.目标是呈现一个对象,将其切片方面切除,并用力替换丢弃的部分(基本上:通过删除联系人以交互方式构建自由体图).通常情况下,我会考虑Flash,但我已经被建议反对它.
你可以在这里看到我使用threejs来创建关于流线,条纹和路径的2D教程:
http://eon.sdsu.edu/~impellus/FLOW/
但我的感觉是,使用threeJS的强大功能进行2D交互式动画是不自然的.
那么请问是否有三个JS的两个JS版本?我想只是问这个问题应该是我所寻找的证据,但让我更清楚.我正在寻找专门用于2D动画的webGL界面.是的,我可以使用threeJS,但我认为这是一个错误.有人可以指导我吗?
我正在开发一款展示3D模型的应用程序.我们加载模型,创建网格,将它们添加到场景......标准程序.添加最后一个网格后,我们计算边界框以移动相机并覆盖所有场景,使用总几何的大小和视口的大小来进行数学运算.
if (bounds.bx / bounds.by < camera.aspect) {
/* Vertical max */
r = bounds.by / (2 * Math.tan(Math.PI / 8));
} else {
/* Horizontal max */
hFOV = 2 * Math.atan(Math.tan(Math.PI / 8) * camera.aspect);
r = bounds.bx / (2 * Math.tan((hFOV / 2)));
}
Run Code Online (Sandbox Code Playgroud)
bounds是包含边界框宽度和高度的对象.在这个计算之后,我们移动相机(加上一点比例,只是美学,我们想要在几何和屏幕边框之间有一点空间:))并渲染
camera.position.z = r * 1.05;
Run Code Online (Sandbox Code Playgroud)
到目前为止,这已实施并运行正常.这已经通过PerspectiveCamera完成.现在我们要改变它并使用OrthographicCamera ......结果是一团糟.模型太小,我们失去了TrackBall控件的鼠标滚轮缩放功能,移动相机的算法不再适用.另外我不明白摄像机构造函数的参数......这些宽度和高度是几何体还是视口?
我一直在研究Java 2D游戏.它是一个带有像素数组(整数)的光栅图形系统.
private BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
private int[] pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();
Run Code Online (Sandbox Code Playgroud)
然后我分别创建一个整数数组,用屏幕对象操作它(从外部图像文件渲染,如.png),然后将该数组复制到我的主数据中,该数组投影在屏幕上.我发现在迭代中使用数组复制方法没有性能差异(并且实际上没有预料到).无论如何,图形渲染得很好,游戏也随之而来.
但是,我发现这是非常CPU密集型的.我的活动监视器说应用程序使用了超过100%的CPU.这显然是因为我正在迭代每个更新的像素数组(76k整数)(每秒60次).
我选择这种技术用于教育目的.这是一个个人项目,我只想深入了解Java图形.我决不与这种渲染技术结合.
我的问题有三个相关部分......