G3D

基于 WebGL 的 Javascript 3D 绘图引擎
授权协议 Apache 2.0
开发语言 JavaScript
所属分类 程序开发、 3D图形处理库
软件类型 开源软件
地区 国产
投 递 者 邴姚石
操作系统 跨平台
开源组织 阿里巴巴
适用人群 未知
 软件概览

G3D 是阿里巴巴开源的一款基于 WebGL 的 javascript 3D 绘图引擎。与其他的 WebGL 3D 引擎相比,G3D 是更加「纯粹」的渲染引擎,也就是说,它完全不依赖任何 DOM API,而是仅仅依赖一个 canvas 对象(或者类 canvas 对象)。该特性使得 G3D 不仅能够运行在浏览器环境中,也能够运行在一些非浏览器的 js 终端环境下(hybrid 环境),比如 GCanvas 环境(基于 Weex 或 ReactNative)。

Try play with G3D

function run(G3D, canvas){

    // create 3d engine
    const engine = new G3D.Engine(canvas);    // create a scene
    const scene = new G3D.Scene(engine);    
    // create camera
    const camera = new G3D.ArcRotateCamera(scene);
    camera.alpha = 45;
    camera.beta = 30;
    camera.radius = 12;
    camera.fov = 60;    
    // create 3 lights
    const light1 = new G3D.DirectionalLight(scene);
    light1.direction.x = -1;
    light1.direction.y = 0;
    light1.direction.z = 1;    
    const light2 = new G3D.HemisphereLight(scene);    
    // create mesh
    const mesh = G3D.MeshBuilder.createCube(scene, 6);    
    Object.assign(mesh.materials.default.diffuseColor, {r: 200, g: 100, b: 100});    Object.assign(mesh.materials.default.specularColor, {r: 200, g: 100, b: 100});
    mesh.materials.default.glossiness = 10;    
    return function () {
        mesh.rotation.y +=1;
        scene.render();
    }
}
  • 摘要 时空图已被基于骨骼的动作识别算法广泛用于模拟人类动作动力学。 为了从这些图形中捕获强大的运动模式,远程和多尺度上下文聚合以及时空依赖建模是功能强大的特征提取器的关键方面。 但是,现有方法在实现(1)多尺度算子下的无偏远距离联合关系建模和(2)用于捕获复杂的时空依存关系的无障碍跨时空信息流方面存在局限性。 在这项工作中,我们提出(1)解开多尺度图卷积的简单方法,以及(2)名为G3D的统一时空图

  • G3D 是一款基于 WebGL 的 JavaScript 3D 渲染引擎,借助 GCanvas,G3D 可以运行在 Weex,ReactNative 等 hybrid 环境下。G3D 由淘宝终端团队推出,并于 2018 年 3 月与 GCanvas 同时宣布正式开源。 那么就会有同学问了,G3D 和 three.js 有什么不同呀?G3D 和 GCanvas 究竟是什么关系啊?这篇文章,就聊一聊

  • 在支付宝半年了,都是在写Java的核心业务处理,感觉离技术越来越远,所以重新捡起C++,开始游戏引擎的研究,这次选择的游戏引擎是G3D,环境是Mac。 这里的编译我选择的是g++,写一个小的实例,可以选择自带的sample的程序,编译的时候花费了我5个多小时才完成,需要下载jpeg,png等许多依赖的库。 这里将整个编译的的命令行贴出来,给无法编译G3D的童鞋一点参考,其中的一些依赖文件的路径你需

  • 1.SAS的G3D语句,其语法: PROC G3D <DATA=input-data-set> <ANNOTATE=annotate-data-set> <GOUT=<libref.>output-catalog>;   PLOT plot-request</option(s)>;   SCATTER plot-request</option(s)>; 例如: proc g3d data=sash

  • Android: `Vertex shader ERROR: 0:32: 'a_position' : Only consts can be used in a global initializer ERROR: 0:70: 'a_normal' : Only consts can be used in a global initializer ERROR: 0:89: 'a_binormal'

 相关资料
  • 上一节课绘制的一个案例是线框立方体,不知大家是否注意到,立方体有8个顶点,但是数组列举顶点的时候,因为绘制直线的时候一个点是三条直线公用, 如果绘制函数gl.drawArrays()绘制模式mode使用gl.LINES模式,每绘制一条直线就需要定义两个顶点。在这种情况下一个点可能在顶点数组中多次列举出来,造成数据重复, 这时候要解决数据的复用,大家应该会想到数据库、索引等概念,也就是说把立方体的8

  • 问题内容: 该脚本绘制控件,英雄,表面和地图: 有一个英雄,当玩家使用控件移动他时必须重新绘制,所有其他可绘制对象也必须重新绘制。问题在于绘制地图是一个漫长的过程,因此我创建的地图越大,英雄移动的速度就越慢,因为必须绘制地图的每个图块。有没有一种方法可以将所有图块以其他方法放置到一个位图,然后在canvas方法中绘制该位图? 问题答案: 最好的选择是只绘制地图在屏幕上可见的部分。这样,无论整个地图

  • 我需要创建一个上传文件的预览。问题:文件将是360°全景,我使用pannellum作为显示库。因此,我在debian服务器上安装了Pagers,上传后,我只需执行以下PHP行: 它绝对是伟大的作品!我得到了一个完美的截图。不幸的是(和预期的一样),这只是一个消息,WebGL不支持此设备...:( 我搜索了Stackoverflow,用谷歌搜索了一下。不幸的是,没有有用的想法。因此,我需要一位专家(

  • G3D Engine 是一个商业级C++的 3D游戏引擎。可以用在商业游戏,论文研究,军事模拟器,和大学课程。G3D支持实时渲染,离线渲染像射线追踪,和通用计算图形处理器。G3D提供了一套 共同的程序和结构,它使低层的OpenGL更容易使用不限制功能或性能。 G3D是一个坚如磐石,高度优化的基础上建立的三维应用程序。 主要的功能和特点 3DS, IFS, MD2, BSP和自定义模式 JPG, P

  • 通过WebGL可以渲染出来各种各样酷炫的3D效果,但是考虑到WebGL复杂性,为了大家降低初学难度,下面的代码仅仅在Canvas画布上绘制了一个点,对WebGL的整个绘图渲染流程进行了完整的演示,麻雀虽小,五脏俱全。 学习建议 本节课你不需要刻意去记忆具体知识,对于暂时不理解的小细节可以跳过,先有个整体印象即可,可以把全部代码复制到编辑器中,根据课程对相关知识模块的介绍,尝试更改几个参数,体验一下

  • 我有一个谷歌地图生成的以下脚本在下面的URL http://apryll.co.in/maps/index.php 我有一个下拉在页面选择不同的位置。 http://apryll.co.in/maps/index.php 当我选择下拉时,它会将不同位置的纬度和经度作为ajax调用的响应。 现在我想用新收到的lat和longs在响应文本中重新绘制google地图 万分感谢