首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏acoolgiser_zhuanlan

    bat 批处理 脚本 for循环 批量压缩gltf模型 gltf批量压缩 gltf压缩转成glb

    bat 批处理 脚本 for循环 批量压缩gltf模型 gltf批量压缩 gltf压缩转成glb 这里参考两篇文章: 1. ,就可以直接通过下面一句命令安装gltf-pipeline这个库: npm install -g gltf-pipeline 安装完成后,按照官方地址的使用说明,直接对模型进行压缩即可,比如: gltf-pipeline -i model.gltf -o modelDraco.gltf -d 就可以把model.gltf模型压缩。 (-d表示使用draco算法进行压缩) for %i in ('dir *.gltf /s /b') do gltf-pipeline -i %i -o %i -d ? 看一下压缩后的模型大小: ? 是如何达到压缩效果的,gltf和glb这两种格式的区别,转换和压缩的原理是什么。 (学海无涯,只有不断深究,才会真正的进步,与君共勉) 微信搜索:acoolgiser,一起学习成长,交个朋友!

    2.4K10发布于 2020-12-16
  • 来自专栏前端之攻略

    gltf格式的压缩文件在threejs中展示

    在H5中引入3D模型往往存在资源太大,可以通过模型网格压缩,通过glTF配合Draco压缩的方式,可以在视觉效果近乎一致的情况下,让3D模型文件成倍缩小 glTF在线查看器: https://gltf-viewer.donmccurdy.com 一、通过Draco进行压缩 Draco及gltf-pipeline的介绍 Draco是Google推出的一个用于3D模型压缩和解压缩的工具库,glTF资源可通过、Draco开发命令行工具gltf-pipeline 进行编码压缩gltf-pipeline可通过npm的方式安装使用,使用方法如下: #全局安装 npm install -g gltf-pipeline #压缩glb文件 -b表示输出glb格式, -d 表示压缩 gltf-pipeline -i model.glb -b -d #压缩glb文件并将纹理图片分离出来 gltf-pipeline -i model.glb -b -d -t 更多参数查阅 文件, 通过命令行工具 gltf-pipeline -i test.glb -o test1.glb -d 则可以生成压缩后的test1.glb文件 2、把解码文件node_modules>three

    4K51发布于 2020-12-08
  • 来自专栏LET

    glTF简介

    概述 glTF简介,Web端三维模型及其特点 Cesium如何加载,渲染glTF,逻辑结构和关键技术 个人总结,从glTF学习如何设计一个二进制格式,个人想法分享 关键字:Cesium glTF WebGL 也就是今天要讲的glTF模型渲染。 glTF的全称是GL传输格式,是一种针对GL(WebGL,OpenGL ES以及OpenGL)接口的运行时资产(asset)。 因此glTF还包含整个场景的关系,包括节点,变换矩阵,变换的层级关系,网格,材质,相机和动画,试图保存所有信息。这是一个场景树的逻辑,算是glTF的一个优化。 比如glTF提供了扩展,提供了场景树,相机的信息,这都是出于通用性的考虑,但这个是否实用,就不好判断了。或者是否提供ZIP压缩。 ▽Accessor&Json表述 这是glTF数据读取的机制,设计的很优雅,很值得我们学习。

    3.9K100发布于 2018-06-20
  • 来自专栏LET

    glTF(二):PBR

    glTF glTF是一个优秀的三维数据规范,其中有很多细节都值得我们学习,按照我的理解,可以分为三大块: Accessor数据访问机制 一套访问二进制数据的规范,将逻辑层和数据层隔离 同传输和读取以及存储灵活性上都有上佳表现 :Mesh与Primitive中的Vertex Buffer, Index Buffer,Vertex Array,还有Texture与State Management,在灵活和易用上都有不错的设计 压缩 : 针对3D Geometry的Draco压缩#6191 Scene& Node 节点间的依赖和位置关系 实例化设计 glTF2.0 相比1.0,glTF2.0的改变可以用“一增一删修修补补”来概括,主要有 这里,glTF的采用的是Disney给出的BRDF公式: ? ,diffuse采用的是Lambert模型: ? (G)eometric term 表示从L光源能够到达V视角的概率,这里glTF采用的是GGX,而Cesium则是Schlick模型: ?

    3.5K60发布于 2018-06-20
  • 来自专栏3Dconvert

    Revit导出为GLTF

    Revit与GLTF格式简介Revit是Autodesk公司一套系列软件的名称。Revit系列软件是为建筑信息模型构建的,可帮助建筑设计师设计、建造和维护质量更好、能效更高的建筑。 GLTF是由OpenGL和Vulkan背后的3D图形标准组织Khronos所定义,成为Web上的3D对象标准。GLTF文件格式包括场景、摄像机、动画、网格、材质、纹理、渲染技术、着色器等元素。 Revit文件导出为GLTF格式Revit文件和GLTF格式都有广泛的用途,在模型应用工作中,经常需要将Revit文件导出为GLTF格式,怎么将Revit文件导出为GLTF格式呢? 3Dconvert for Revit插件支持将.rvt,.rfa,.adsk,.rte等Revit格式文件,转换为8种目标格式:GLTF、OBJ、GLB、DAE、STL、OFF、XYZ和PLY。 在插件页面选择需要转换的目标格式,目前插件支持8种目标格式:GLTF、OBJ、GLB、DAE、STL、OFF、XYZ和PLY。选择需要导出的目标格式:GLTF

    1.6K10编辑于 2023-12-01
  • 来自专栏LET

    glTF(2.1): PBR

    去年针对glTF的PBR材质,写过一篇文章。但重读这篇文章,觉得自己没讲到点子上。今天终于有时间,想着重新梳,重写一下。 Rasterization的不足 ? BRDF 上面的光学公式就剩下f这个函数的定义了,glTF里采用的是Disney提供的Microfacet(显微镜) model,简单说,就是这个材质可以模拟各种光学现象,fragment的朝向差别较大 但glTF基于《Unreal Engine's course notes on real-time PBR》进行了预处理,优化性能。 ? 这个预处理的依据就是如上的公式。

    2.3K20发布于 2019-03-18
  • 来自专栏计算机图形学 前端可视化 WebGL

    UE导入FBX、GLTF模型

    导入GLTF 由于webgl用gltf比较多,所以手上模型多是gltf格式。 UE有插件可以导入gltf 。比如gltf for UE4, 另外一个出名的就是Datasmith,是一个官方的插件。

    4.1K10编辑于 2022-09-26
  • 来自专栏代码编写世界

    DEM转换为gltf

    概述 DEM(地形文件)天然自带三维信息,可以将其转换成gltf模型文件。DEM是栅格数据,可以通过GDAL进行读取;gltf是一种JSON格式,可以采用nlohmann/json进行读写。 2. my_workaround_fifo_map>; int main() { GDALAllRegister(); CPLSetConfigOption("GDAL_FILENAME_IS_UTF8" ", "2.0"} }; gltf["scene"] = 0; gltf["scenes"] = { {{"nodes", {0} }} }; 0; } int depth = GDALGetDataTypeSize(img->GetRasterBand(1)->GetRasterDataType()) / 8; 参考 [1] github上的gltf教程 [2] gltf教程中文翻译 [3] nlohmann/json关于保留插入顺序的讨论

    1.5K40发布于 2020-01-14
  • 来自专栏代码编写世界

    WebGL简易教程(十五):加载gltf模型

    纹理数据可以使用jpg文件,方便压缩和传输。 从以上特性可以看出,glTF特别方便与互联网的使用场景,便于传输且预处理程度小。 数据 使用的地形glTF文件已经处理好并上传到文章末尾的地址中(具体的转换过程可以参看《DEM转换为gltf》)。 将这个数据导入到glTF Viewer网站上查看,显示结果如下: ? DOCTYPE html> <html> <head> <meta charset="utf-<em>8</em>" /> <title> 显示地形 </title> </head> <body onload 《WebGL编程指南》 2.glTF格式详解(目录) 3.glTF Tutorial 4.前端H5中JS用FileReader对象读取blob对象二进制数据,文件传输 5.gltf2.0规范

    6K20发布于 2020-02-14
  • 来自专栏铭毅天下

    Elasticsearch 8.x 存储有无压缩?能压缩到多少?

    1、认知前提 Elasticsearch 支持压缩压缩方式默认为:LZ4 压缩算法。 中文翻译为: 默认值使用 LZ4 压缩压缩存储的数据,但这可以设置为 best_compression,它使用 DEFLATE 来获得更高的压缩率,但会降低存储字段的性能。 2、动手验证一下压缩比到底能压缩多少? 2.1 样例数据准备 以 kibana_sample_flights 飞行数据为例进行验证。 LZ4 算法能压缩到一半! 新压缩算法 best_compression 压缩后,压缩为原始空间的:35%,也就是能省65%的空间。 压缩比要求高推荐使用:best_compression。

    1.1K10编辑于 2024-07-15
  • 来自专栏腾讯社交用户体验设计

    如何在页面极速渲染3D模型

    而通过 glTF 配合 Draco 压缩的方式,可以在视觉效果近乎一致的情况下,让3D模型文件成倍缩小。下面具体介绍 glTF 格式及 Draco 压缩工具。 1. 通过 Draco 进行压缩 Draco 及 gltf-pipeline 介绍 Draco 是 Google推出的一个用于 3D 模型压缩和解压缩的工具库,上述介绍的 FBX2glTF 及 COLLADA2GLTF 工具也嵌入了 Draco 压缩功能,除此之外,glTF 资源可通过基于 Draco 开发的命令行工具 gltf-pipeline 进行编码压缩gltf-pipeline 可通过 npm 的方式安装使用 ,将 png 转换为 basis 文件后,大小与 jpg 格式差不多,但在 GPU 上比 png/jpg 小6-8倍。 7.https://www.khronos.org/gltf/ 8.https://news.ycombinator.com/item?

    9.3K32发布于 2019-12-12
  • 来自专栏编程

    Python模块知识8:configparser、压缩模块

    importconfigparser#导入模块 config=configparser.ConfigParser()#必须的装载语句 config.read('black.txt',encoding='utf-8' importconfigparser#导入模块 config=configparser.ConfigParser()#必须的装载语句 config.read('black.txt',encoding='utf-8' importconfigparser#导入模块 config=configparser.ConfigParser()#必须的装载语句 config.read('black.txt',encoding='utf-8' () 2)解压缩 import zipfile z=zipfile.ZipFile('a.zip','r') z.extractall()#解压全部 for item in z.namelist(): print(item,type(item)) z.close() 三、tar文件夹解压 1)压缩 import tarfile tar = tarfile.open('your.tar','w')#压缩

    1.1K60发布于 2018-01-11
  • 来自专栏计算机图形学 前端可视化 WebGL

    WebGL压缩纹理实践

    以1024×1024为例,如果图像中每个像素需要RGB三个通道,每个通道需要8位空间,那么整张图片就需要使用1024 x 1024 x 8 x 3 位的信息,也就是3M,这3M的信息都需要加载到GPU当中 而我们最终选用的也就是ktx2.0,它能够很方便的和gltf模型格式进行集成。 有关压缩纹理的更多知识,大家可以在网上搜索啊,此处不进行详细的介绍。 转换的流程大致如下: npm install obj2gltf -g obj2gltf -i a.obj -o a.gltf 首先通过npm安装obj2gltf。 然后通过obj2gltf 进行模型的转换,其中 -i表示输入的OBJ模型。-o就是输出的gltf模型。 转换为gltf之后,通过对gltf进行压缩压缩的命令大致: gltfpack -i scene.gltf -o scene.glb --tc 其中tc是对贴图进行压缩,原文如下:gltfpack can also compress textures

    2.6K10编辑于 2022-09-28
  • 来自专栏前端漫步

    Cesium入门之九:Cesium加载gltf文件

    glTF文件介绍 glTF(Graphics Library Transmission Format)是一种用于存储3D模型和场景的格式。 glTF支持两种文件格式:*.glTF和 *.glb。 glTF文件易于阅读、修改和编辑,同时可以使用gzip进行压缩以减小文件大小。但是.glTF文件格式在处理复杂场景时,可能会变得比较冗长,处理速度较慢。 glb文件也可以使用gzip压缩以进一步减小文件大小。但是.glb文件格式作为二进制文件,难以直接进行编辑和修改。 Cesium.BingMapsImageryProvider.fromUrl( "https://dev.virtualearth.net", { key: "AodxPjHCueIzbuOPovDaDba7D6qpNMPdJ8nt96KsDjKIs0yz5j4jTuNMdMdO6tJZ

    5.7K31编辑于 2023-10-14
  • 实测|用 DracoOptimizer 把 glTFGLB 模型压缩到极致:体积减90%,Web3D加载快到飞起

    实测|用 DracoOptimizer 把 glTF/GLB 模型压缩到极致:体积减90%,Web3D加载快到飞起面向 Web3D / Three.js 开发者的轻量桌面工具:一键压缩 + 批量处理 + 人物角色(glTF)15.6 MB4.7 MB 69.9%细节轻微损失(可接受)场景模型(GLB) 32.1 MB10.5 MB67.3%无核心细节损失 注:压缩等级为 8(平衡体积/质量 核心使用流程步骤 1:选择压缩对象单文件:点击「选择文件」,支持 .gltf/.glb 格式批量处理:点击「选择文件夹」,自动筛选文件夹内所有 glTF/GLB 文件步骤 2:设置压缩等级推荐等级:7~ 8(绝大多数场景首选,平衡体积和质量)极致压缩:9~10(适合对体积敏感、对细节要求低的场景)轻度压缩:1~6(适合高精度展示类模型)步骤 3:一键压缩 + 预览点击「开始压缩」,工具会自动:解析模型的几何数据 (顶点、面、UV 等)应用 Draco 算法压缩几何信息生成压缩后的文件(默认后缀:_compressed.glb/_compressed.gltf)分屏展示压缩前/后模型(可旋转、缩放对比细节)步骤

    84210编辑于 2026-02-12
  • 来自专栏Gamma安全实验室

    浅淡v8指针压缩

    “详情请参考:https://en.wikipedia.org/wiki/Tagged_pointer” 对于v8中64位的对象指针,它们的高32位基本是不变的,花费4字节来储存它们会浪费内存空间;所以指针压缩将 v8关于指针压缩的实现 首先我们能想到的实现方式是从0地址开始分配4G内存,确保v8对象分配在这4G内存范围内;v8显然没有这样做,在chrome渲染进程中可能会有多个v8实例,这个方案会导致所有v8实例都来竞争这 “详情请参考:https://v8.dev/blog/pointer-compression” 指针压缩在v8漏洞利用中的影响 首先我们很难泄漏v8堆内存空间的高32位(r13寄存器),也就意味着我们用伪造 ,所以没有指针压缩。 利用思路 考虑到指针压缩,我们基本利用思路就有了: 1. 利用类型混淆把double数组变为object数组; 2. 越界读写修改布置在后面的double数组的length字段; 3.

    1.7K20发布于 2020-12-23
  • 来自专栏Android 开发者

    使用 R8 压缩您的应用

    有了 R8 编译器,您可以通过压缩、混淆和优化,更全面的缩小应用体积。 本文我们将对 R8 的特性进行一个简要的介绍,并介绍可预期的代码缩减程度以及如何在 R8 中启用这些功能。 R8压缩特性 R8 通过下面 4 项特性来减少 Android 应用大小: 摇树优化 (Tree shaking): 使用静态代码分析来查找和删除无法访问的代码和未实例化的类型; 优化 : 通过删除无效代码 为什么需要 R8 压缩 开发应用时,所有代码都应有目的并在应用中实现相应功能。 启用 R8压缩您的应用 要在 release build 上启用 R8 压缩,需要在应用的主 build.gradle 文件中将 minifyEnable 属性设置为 true,如下所示: android R8 能缩减多少应用大小? R8 可以大大减小应用的大小。例如,去年的 Google I/O 应用大小为 18.55 MB,压缩前包含 150,220 个方法和 3 个 DEX 文件。

    1.8K30发布于 2021-01-07
  • 来自专栏用户9379088的专栏

    Three.js 之 Import Model 导入模型

    例如你想修改纹理贴图,换一张更压缩的贴图时,就会比较麻烦,因为这些数据都是被集合在了一起,同一个二进制文件中。 glTF-Draco有点像说的第一个格式,不过使用了 Draco algorithm 来压缩几何体的数据。如果你对比 .bin 文件的大小,你就会发现这个会更小一点。 如果想要每个模型一个文件,并且不关心模型内的素材修改,那么二进制 glTF-Binary 更适合。在这两种情况下,您都必须决定是否要使用 Draco 压缩,但我们稍后会介绍这部分。 new THREE.Mesh( new THREE.PlaneGeometry(15, 15), new THREE.MeshStandardMaterial({ color: '#607D8B (error) => { console.log('error') console.log(error) },)复制代码我们也可以尝试其他的格式导入,除了 Draco 压缩格式外,其他都生效了

    7.4K30编辑于 2022-08-10
  • 《数字图像处理》第 8 章-图像压缩

    8.2.7 位平面编码         位平面编码将图像的每个像素的二进制位拆分到不同的位平面(如 8 位灰度图拆分为 8 个位平面),对重要的低位平面保留,高位平面压缩 / 去除。 (保留4位,压缩比=8/4=2) compression_ratio = 8 / 4 print(f"位平面编码压缩比:{compression_ratio:.2f}") h, w = image.shape h_pad = (8 - h % 8) % 8 w_pad = (8 - w % 8) % 8 img_padded = np.pad j:j+8] = quant_block # 计算压缩比(非精确,仅参考) non_zero = np.count_nonzero(compressed) total h_pad = (8 - h % 8) % 8 w_pad = (8 - w % 8) % 8 img_padded = np.pad(image, ((0, h_pad),

    20710编辑于 2026-01-21
  • 来自专栏前端漫步

    Threejs入门之二十五:Threejs加载gltf文件

    这一节我们来通过Threejs加载一个glft格式的三维模型文件,首先我们先简单了解下gltf文件gltf文件gltf文件全称Graphics Language Transmission Forma(图形语言传输格式 gltf文件核心是JSON文件,一个gltf文件可传输一个或多个场景, 包括网格、材质、贴图、蒙皮、骨架、变形目标、动画、灯光以及摄像机等信息。 加载gltf文件下面通过代码实现加载一个gltf格式的文件到场景中,首先还是需要创建场景、相机、渲染器等初始化代码,具体步骤查看前面章节,代码如下页面初始化import * as THREE from 这里我们在加载gltf文件成功后,打印该gltf,看下里面的数据结构,并在加载成功后,将其加入到scene中loader.load('.. /models/motor03.gltf',function(gltf) { console.log(gltf); scene.add(gltf.scene) })刷新浏览器,查看效果

    9.4K31编辑于 2023-05-19
领券