陈小峰(iefreer)的专栏

踏得网创始人,Stone 3D作者。

  • 博客(634)
  • 资源 (5)
  • 收藏
  • 关注

原创 Stone教程:一行代码就可以把3D场景植入到普通网页中

踏得网的Stone工具可以帮助用户快速构建3D场景,场景可以在Stone工具内编辑、播放、保存和重新加载。如果想把在Stone工具中制作的场景放到现有的网页中,也很简单,只需要2步。Stone提供了一个运行时库tds_rt.js,(tds_rt全称为techbrood stone runtime)链接地址为:https://techbrood.com/stone/tds_rt.js,第一步是把该js库加载到页面中:<script src="https://techbrood.co.

2020-10-22 12:34:10 2562

原创 踏得网发布轻量级网页3D编辑器Stone,可用于快速制作沉浸式网页应用

从表现形态上来看,互联网已经走过了3个大的阶段。第一个阶段是简单文本信息的分享,源于学术之间文档的共享需求,然后普及到普通用户对于新闻获取和知识搜索方面的需求。第二个阶段是富媒体交互,在这个阶段网页的内容不再局限于文本,而是图文并茂、乃至音频视频动画。而在交互上也不只是被动的接收,而有了更多的交互和动效,这使得电商等众多网页应用和网页游戏成为可能。第三个阶段是信息载体的变化,从桌面走向了移动,催生了移动互联网时代。而现在互联网内容将走入第四个关键的阶段,即沉浸式互联网时代。沉浸式互联网和

2020-10-09 20:25:58 2147 1

原创 Three.js 中文文档和在线演示实例

Three.js是当下最流行的网页3D渲染JS引擎,其主要是对WebGL编程以面向对象方式进行的封装。踏得网专注于HTML5技术生态链的资源开发,鉴于网络上Three.js方面的资料比较散乱,且良莠不齐,因此我们把Three.js的官方文档、示例和我们的平台上已有资源整合起来,提供在线中文文档以及方便的调试学习环境。

2016-06-16 19:40:24 94378 4

原创 vite dev开发模式下支持外部模块引用

vite build通过rollupOptions.external来支持外部模块,可是这对vite dev模式不工作。一个临时解决方法是使用插件vite-plugin-externalize-dependencies。

2023-10-06 16:06:41 507 1

原创 iOS播放MP3视频流AudioContext解码报错null问题处理

web中的媒体流是html5以后才引入的新的不断发展的技术,中间还经历了layer1,layer2和layer3标准。解码器不应该关心未知数据,解码器应该只是寻找,直到它找到它理解的和可以解码的标识。iOS设备的AudioContext对于Mpeg1,2,3数据流的编解码容错性支持不好,需要frame数据都是完整的(从头部边界开始)。mp3或mp2的每个音频帧(每大约200字节)的所有起始标头为0XFFE,而acc音频为0XFFF,因此可以使用0XFFE来做为同步标识。

2023-09-22 16:50:28 298

原创 http请求header中设置的数据未能发送成功

通过在cookie中设置user token来实现用户请求鉴权是常见的方式,但cookie设置会遇到跨域的问题,这个时候可以在header中加user token来传递数据,而服务端返回的user token放在localstorage中。但在header中添加自定义数据时,需注意规避使用下划线,因为nginx服务器默认是把下划线禁用的,也就是header中带下划线的字段会被自动过滤,导致请求丢失了该字段。比如,如果token的名字是user_token,或者user_id,都会出现丢失问题。

2023-07-14 18:07:16 273

原创 THREE .DRACOLoader: Unexpected geometrytype 错误解决

是因为three.js升级到152版本以上,需要相应升级draco库到1.5.6+。加载glb(压缩过的)文件时,遇到这个问题。

2023-06-08 18:10:44 497

原创 git删除本地分支和远程分支

git删除本地分支和远程分支

2022-06-17 16:17:14 415

原创 Stone教程:如何在普通网页中处理Stone 3D场景中实体交互事件

如果是通过stone 3d运行时库集成到普通网页中,有可能会需要处理场景中物体的交互事件来实现一些自定义的行为,最常见的是点击、悬停等事件交互。这可以通过在stone 3d容器中侦听如下事件来实现:tds_ev_entity_pointerdown (点击) tds_ev_entity_pointerover (悬停)举例如下,假设stone_div是3d场景容器的id:var cont = document.getElementById('stone_div')cont.a...

2021-04-17 23:24:12 1122 2

原创 Stone 3D教程:常用的可建构实体造型功能(合并、相交和相减)

常用的实体造型功能一般包括对两个(或多个)几何体进行合并、相交和相减。合并是取两个模型的并集,即非重叠部分保留且重叠部分的体素只取其中一个。相交是取两个模型的交集,即只保留相交部分的体素。相减是取两个模型的体素差,显然有顺序,即A-B和B-A是不同的。举例而言,我们要在一个立方体的一个侧面挖出一个坑,具体步骤如下:1. 首先新建一个大的立方体,和一个小的球体,然后把小的球体移动到立方体的上方并部分的陷入立方体中。2. 然后按住CTRL键,通过鼠标点击界面右侧场景树中的几何体来选择两个

2021-03-10 20:19:50 1130

原创 Stone教程:如何给网页3D应用程序添加交互热点

网页3D应用程序中一个常见的交互行为是用户点击场景中的某个热点,然后呈现特定的内容,如视频、音频、对话框;或者进行场景切换。本教程说明如何在Stone工具中轻松实现这样的热点交互。在左侧工具栏实体添加子栏目中,有一个灯泡状的图标按钮,如下所示:使用该按钮可以向场景中添加热点信息。点击按钮,默认将在场景根目录下创建一个名为HotSpot的实体:选中Hotspot,在检查器面板中可以修改该热点的交互行为:目前支持的行为类型有播放视频、音频、显示对话框和跳转链接。视频、

2021-03-09 14:20:15 988 2

原创 stone 3d常见问题:本地tsp工程文件无法加载

在html文件中加载类似 ./demo.tsp 这种相对路径的工程文件,不能工作,命令行错误信息为:URL scheme must be "http" or "https" for CORS request原因是Chrome默认不支持文件协议的跨域访问。解决方法有3种,一种是启用文件协议访问:--allow-file-access-from-files为安全起见,可使用一个单独安装的Chrome版本来以上面的参数来启动。该方法不推荐。第2种方法,是建立本地web服务器,可以是nodejs

2021-03-04 22:58:49 1245 8

原创 Stone 3D教程:如何快速批量创建树木、花草等自然物体

Unity3D和Unreal里面可以引入树木花草包来批量创建这些植物,效果很棒。不过别忘了Unity3D需要5G+,Unreal需要10G+的空间。Stone只有3M多,也可以在场景中快速创建中小规模的自然植被。具体方法是使用Plant工具:点击Plant工具后,界面左侧会出现一个Plant工具箱:工具箱最上面的两个按钮分别是运行控制和帮助按钮,下面的范围、数量和缩放滑块用来控制种植区间、数量和植物大小。植物类型用来选择生成什么样的植被,依次可以是树、花、草和石头(石头这

2021-02-27 23:52:02 1086

原创 网页3D编辑器Stone教程:如何实现路径动画

路径动画用来使物体沿着指定路径运动。在Stone 3D中实现路径动画,首先要创建一个路径,路径实际由一系列点组成。如何创建路径?我们先向场景中添加一个实体,比如一个平面(也可以不是平面):然后点击页面左侧工具栏工具下面的路径工具:然后用鼠标左键点击平面选择路径的各个中转点,绘制出一条路径,完成最后一个点的选择时,按鼠标右键来结束中转点的选择,如下白色线条:然后记得关闭左边的工具箱:(用来设置路径线条的外观的工具箱)。注意:最后要关闭左边的路径工具箱,否则路径不会生

2021-02-23 09:08:27 1290 3

原创 Stone 3D教程:创建全景图云展览,只需要几分钟

Stone 3D工具1.1.0版本引入全景图制作工具:点击全景图图标,Stone将默认创建一个全景图查看器和两张全景图场景:默认选中了Pano1节点。如果想在Pano1场景中添加切换热点,可以先通过按住鼠标左键来旋转场景到预期位置,直接鼠标点击该位置即可:注意!如果您点击时没有出现上图这样的灯泡图标,那么你可能没有选中任何一个Pano节点,你需要先选择一个想要添加热点的Pano场景节点(如Pano1)。然后在场景树中我们选中Pano2节点,类似方法添加热点。点击运行,鼠标

2021-02-21 00:47:22 1861 1

原创 网页3D编辑器Stone案例:快速定制旗帜类软体动画

展馆中的一个常见元素是旗帜,stone工具支持快速定制旗帜类软体动画。可以修改重力因子、风力、风阻、固定模式以及边缘加强因子。

2021-01-28 23:32:20 591

原创 网页3D编辑器Stone案例:房地产数字沙盘

房产和展馆类的数字沙盘(或电子沙盘)目前主要是通过全息投影来实现的,即通过外围硬件把事先制作好的数字影像和物理沙盘进行全息融合。这种方案的优点是观感较好,缺点是用户和场景内物体没有互动,其技术本质和看3D电影类似。如果要提供3D电影的效果,同时又要能使得用户身临其境融入场景进行实时互动,就得依靠XR(三维)应用程序,而不只是投影。Stone工具和Unity、Unreal类似,可用来制作XR应用程序,Stone专门制作网页类的XR应用程序。下面是用Stone制作的一个房地产数字沙盘案例:

2021-01-23 21:52:32 765

原创 WebGL渲染错误:GL_INVALID_FRAMEBUFFER_OPERATION: Draw framebuffer is incomplete

出现这个framebuffer is incomplete的错误,一般是由于rendertarget设置有问题,比如缓冲区目标是否有效、使用上有没有冲突以及缓冲的尺寸是否设置非法等。

2021-01-19 13:34:11 7333 1

原创 网页3D编辑器Stone案例:未来城市云展厅

使用Techbrood Stone工具专业版可以快速制作在线云展厅,有效融合高清2D图文和3D场景交互。使用到了2D界面组件(专业版功能)、各种3D动画组件、路径规划、人机交互组件(专业版功能),以及粒子、UI系统。...

2021-01-08 17:19:09 967

原创 如何在centos7上安装ruby和compass

踏得网迁移服务器(CentOS5->CentOS7)时,遇到了一些麻烦,这里记录一下。Compass是用来编译SCSS语法的,依赖于Ruby,虽然目前该项目可能已经不再活跃,但不能影响历史代码的应用。yum install centos-release-scl-rh centos-release-sclnext install the right versionyum --enablerepo=centos-sclo-rh install rh-ruby26then e..

2021-01-05 01:00:42 631

原创 Web3D编辑器Stone教程:如何使用资源库导入免费在线模型

Stone工具最新版本实现了资源库功能,资源目前支持图片、视频、音频、材质和模型这5种类型。材质可以直接拖拉到实体上即可应用。模型通过双击即可加载到场景中,需注意模型的大小,可能需要调节其transform才可以合适的显示出来。Stone工具内置支持上千的免费模型资源,可以通过资源库面板右上角的搜索框来进行云端搜索:比如上面是通过搜索“铁”这个关键词,出来的结果。双击模型图标即可加载到场景中。...

2020-12-17 00:28:29 1096

原创 Web3D编辑器Stone教程:使用Interaction组件实现用户交互

3D引擎在用户交互上通常有3种方式,一种是开放API,通过执行用户脚本来实现;第二种是通过Blueprint(或Graph)蓝图工具来实现无编程可视化交互;还有一种是通过给实体添加交互组件来实现。这三种方式使用难度依次降低,功能性也依次降低。在Stone工具中,目前采用了第三种interaction组件来实现简单而常用的交互。首先选中实体,然后给实体添加interaction组件,在检测器中点开该组件,如下所示:这里对默认配置不做任何修改,直接点击菜单栏的运行图标:在

2020-12-17 00:04:48 845

原创 使用踏得网Web3D编辑器Stone制作WebGL钻石特效

钻石是光学特性很复杂的物质,存在多次折射、反射、色散以及边缘高光闪烁等效果,要想非常真实的在网页端进行模拟是很困难的,需要使用到光线跟踪,而这显然很消耗性能。我们可以使用一些折中处理,来逼近真实的效果,不需要那么物理真实,更多的是视觉感受上达到差不多的效果。下面是我用Stone 3D工具制作的一个效果:视频链接:http://t.cn/A6GFjMCm?m=4577854908007251&u=1406897513...

2020-12-03 01:57:54 951 4

原创 踏得网Web3D编辑器Stone教程:分分钟制作灯泡发光特效

灯泡发光发亮是生活中稀松平常的现象,可是在网页3D中想要模拟这样的效果,却没有想象中的那么简单。首先需要建立发光的后处理程序,而WebGL的着色器代码是出了名的难写难以调试,更不用说这里面有不少的物理原理和数学计算。其次得处理发光体和周边物体的遮挡问题,最后还得慎重考虑发光物体在一个大型场景中渲染时的性能问题。Stone 3D工具内置了相关处理,使得用户创建这样的效果非常简单和高效。1. 给场景Scene节点添加glow组件,添加好后,glow组件的属性保持默认即可。不知道如何给实体添加

2020-11-26 22:40:52 687

原创 网页3D编辑器Stone教程:如何在3D场景中添加注解

注解是在线展示(无论2D还是3D)的基本功能。Stone提供了两种方式的注解,一种是带自动位置调整和连接器的注解器,一种是简单的文本框。带自动位置调整和连接器的注解器对应的组件为:annotation-with-connector简单的文本框注解器对应的组件为:annotationAnnotation with Connector这个组件比较灵活,能够从目标对象的一个锚点引出一条连接线,然后在连接线的另一端显示标题和描述。该组件文本可内联编辑,也可以通过常用的组件属性中进行编辑,在组件属

2020-11-16 12:16:23 501

原创 主流3D内容制作工具简介和坐标系一览

市面上的主流3D软件功能各有特色,所采纳的坐标系不尽相同,有时需要在彼此之间转换。现在整理如下: 软件 官网链接 简介 类型 轴向 坐标系 Unity https://unity.com 美国优美缔公司出品的实时3D内容平台 3D应用开发 Y轴向上​ ​ .

2020-11-10 13:46:09 1903 1

原创 网页3D编辑器Stone教程:如何创建管道模型

使用踏得网的Stone工具可以轻松创建一个管道。首先创建一个曲线(Spine)实体,从左侧工具栏中选择并点击“曲线”菜单:这时场景当前选中实体下将出现一个曲线模型:该曲线模型默认情况下有4个控制节点,鼠标悬停到控制节点上会出现三轴变换辅助器,如上图所示。移动控制节点的位置将可以改变曲线形状。如何修改控制节点?可以在场景树中选中该曲线多边形实体,在其右键菜单中有“添加节点”和“删除节点”子菜单,点击即可增删控制节点。把多边形变成管道选中上述曲线对象,点击工具栏中的管道工

2020-11-06 12:13:31 531

原创 如何在网页3D编辑器Stone中引入平面多边形模型

踏得网的Stone工具支持导入复杂的SVG图形并自动根据SVG里面的路径数据生成形状模型。具体操作:把svg文件直接拖拉到Stone编辑器的场景区域并松开鼠标,比如一个名为tiger.svg的文件。此时注意观察场景树的变化,如果加载成功,应该会出现一个名为tiger的节点,如果你的场景树层级关系较多,你可以在场景树最上面的搜索栏里面敲入“tiger”来快速定位到该节点。此时如果3D场景中没有出现预期的模型,那么一般是因为模型太大或太小所导致,可以通过选中tiger节点,在检测器的tr

2020-10-27 22:45:17 356

原创 Stone教程:如何导入3D模型到场景中

踏得网Stone工具支持导入外部3D模型。当前支持的模型类型有fbx、glb和obj。有三种操作方式:1. 直接从文件资源管理器拖拉模型文件到编辑器的场景中2. 也可以通过点击菜单“程序”->“引入”来导入3. 也可以通过下面的资源池工具条上的导入按钮来导入模型导入后,默认情况下,如果导入正确,该模型将被插入为当前选中节点的子节点。由于大小问题模型可能超出编辑者视界,我们可以通过鼠标滚轮来缩放场景来看到模型全貌。如果模型过大或者过小,可以通过在场景树中选中该模型节点

2020-10-25 17:51:25 984

原创 Stone教程:如何在3D场景中使用粒子动画特效

踏得网的Stone工具采用了着色器粒子编辑引擎,可以很容易的实现烛火、萤火虫、烟花、喷泉、雨雪等3D动画特效。要在场景的特定位置添加粒子特效,可以首先在该位置添加一个空实体,然后给该实体添加particle组件:点开ParticleEmitter组件标签,可以看到一个当前使用的粒子贴图:双击该贴图将打开粒子编辑器:最上面是贴图,你可以换成自己制作的贴图,比如雨滴、雪花等。粒子参数有很多,比较重要的几个参数是粒子数量、生存周期、3个维度上的速度、加速度(注意除了初始值,还有变化

2020-10-25 17:21:19 667

原创 Stone教程:如何在3D场景中使用音频和视频

Stone支持直接从系统资源管理器中拖拉资源到场景实体上来自动完成音频和视频对象的创建。目前支持的音频格式为mp3/ogg/wav,视频格式为MP4/webm/ogg。第一步:在场景中创建一个实体,比如一个立方体。第二步:把音频或视频文件拖拉到立方体上,鼠标松开。如果是音频文件,则在场景树中选中立方体后,可以看到该实体多了一个AudioEmitter组件:点击Audio属性旁边的播放按钮,则可以播放该音频。如果要让Stone应用程序运行时自动播放该音频,请勾选组件的自动播放(Au

2020-10-25 16:49:52 377 1

原创 Stone教程:如何选中、平移、旋转和缩放实体

3D世界的平移、缩放和旋转操作和2D文档中有很大的差异。2D文档中选中文本框的时候一般会出现辅助边框用来进行缩放以及平移,类似的思路,3D目标操作目前比较成熟的一个方式是给目标3D实体添加辅助调节器,这个调节器必须是3个维度的,可以分别对X/Y/Z三个维度进行调节,还要可以对其中任意多个维度同时调节。选中选中实体有2种方式,一个是在中心场景中双击实体对象,还有一个是在场景树中选择实体。平移在Stone编辑器中选中实体后,点击左侧工具栏中的平移按钮(或者按快捷键T):这时,

2020-10-24 11:42:25 642

原创 Stone教程:如何在3D场景中添加图像

在Stone中添加图像很简单,只要2步。第一步,新建一个平面,然后移动到预定位置,并缩放到合适的比例第二步,把图片(png或jpg)从操作系统资源管理器中直接拖拉到上面的平面上即可:...

2020-10-24 09:38:24 744

原创 踏得网Web3D编辑器Stone教程:组件简介以及如何使用组件来扩展实体的功能

踏得网的Stone工具实现了经典而强大的ECS(即Entity-Component-System)架构,场景中的实体可以通过组件来轻松的扩展其功能。当我们在场景树中选择了一个实体对象时,检查器面板会自动显示该实体对象的属性和组件列表:在检查器的最顶部有一个添加组件的下拉列表框,我们首先分类介绍下已有组件的功能:操作类:drag-controls:拖拉控制,用来给实体添加可拖拉操作性object-controls:给实体添加对象控制(鼠标和键盘操作)fps-controls:

2020-10-22 13:18:05 741

原创 基于HTML5实现的在线3D虚拟试衣系统(试衣间)解决方案

3D虚拟试衣系统的使用场景主要是在线电商或数字营销,为品牌服装、服饰、饰品添加高端3D虚拟购物动效,提升用户感官体验和交互体验。踏得网基于网页/HTML5独家研发了一套在线3D虚拟试衣间系统。纯网页版,跨平台支持,无需用户安装插件。

2020-05-15 16:00:30 55342 18

原创 A-Frame WebVR开发入门教程

WebVR和WebGL应用程序接口使得我们已经可以在浏览器上创建虚拟现实(VR)体验,但从工程化的角度而言,开发社区还需要更多方便强大的开发库来简化编程,Mozilla的 A-Frame 框架就是这样一个工具,提供了一个Web开发者所熟悉的标记语言来快速构建3D VR场景动画原型,而不需要编写过多的JavaScript和GLSL语句。本文将介绍如何使用A-Frame构建一个简单的在线可运行实例。

2017-04-07 00:05:51 24189 2

原创 如何在浏览器中使用WebAssembly特性

WebAssembly是一个新的重大网页技术,顾名思义“网页的汇编语言”。[参考阅读:什么是WebAssembly,为什么需要WebAssembly]该技术得到Mozilla、Google和Microsoft的支持,但目前如果要体验该特性,需要修改浏览器的一些标记(配置):对于Chrome,打开chrome://flags/#enable-webassembly,启用该标记。对于Firefox N

2017-03-02 22:12:26 15827 1

原创 CSS3特性查询(Feature Query: @supports)功能简介

这是2017年不能不了解和学习的一个CSS新特性,很简单实用,考虑到现实世界浏览器的复杂性,该特性本应该先于其他新特性出来。我们已经知道使用媒体查询(Media Query)来检测屏幕尺寸,从而实现响应式界面设计。而特性查询则用来查询用户代理(如桌面浏览器)是否支持某个CSS3的特性,这个功能除了IE之外,已被其他浏览器所支持。

2017-02-07 13:24:39 8205

原创 2016年度10大HTML5动画

踏得网精选2016年度最酷最新的HTML5动画集,评选标准为:创意新颖度+实现技术难度+趣味程度。技术全面覆盖HTML5/CSS3/SVG/WebGL/ES6。

2016-12-27 17:55:24 35419 1

原创 php tesseract 不能执行成功

centos6的环境,php版本为5.5,tesseeract为2.0.2版本,执行其他命令如ls可以,执行tesseract不工作。在命令中加入 2>&1,返回错误信息“不能加载eng.unicharset",权限问题,修改权限解决问题,记录下。

2016-12-21 15:20:57 8689 2

Atomikos Transactions Guide

You should read this guide if you fall into one of the following categories: • You want to use Atomikos TransactionsEssentials. • You want to add transaction support to your J2SE application. • You want to understand a bit more about JTA.

2013-03-16

Android 三维图形演示代码

关于Android开发指南一文的三维图形演示应用程序,使用OpenGL ES技术,即Tunnel3D,代码来自网络,修改了若干编译问题。在G1上测试通过。

2009-10-01

一种新的Windows Mobile软件架构

本文详细讲解了一个简洁干净的基于windows mobile平台和.Net Compact Framework框架上的移动应用程序的开源架构实现

2009-07-30

Python文件重命名工具

可遍历替换某用户指定目录下所有文件名中的关键字. 如把c:\myproject下所有文件名中的sun关键字替换成hpux,且遍历所有子目录.

2009-07-25

windows mobile 程序异常问题定位指南

本文全面深入的阐述了windows mobile平台上程序异常处理的几个关键问题:1. windows mobile平台的内存管理机制2. 如何使自己的应用程序具备结构化的异常处理能力3. 如何在客户现场发生异常且不可复现的情况下,迅速离线定位到准确的代码行和调用逻辑(本文适用于所有windows mobile 5.x 6.x平台,因为工作环境的原因,用英文撰写)

2009-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除