Skip to content

Releases: uinosoft/t3d.js

v0.3.1

10 Dec 02:59
Compare
Choose a tag to compare

变更日志

  • 特性:为 TextureBase 添加 userData 属性
  • 特性:为 DirectionalLightShadow.frustumEdgeFalloff 添加垂直淡出支持
  • 特性:为 Matrix3 添加 isIdentity 方法
  • 特性:为 Renderer 添加 asyncReadPixel 选项
  • 特性:为 MathUtils 添加 lerp 方法
  • 修复:解决 CylinderGeometry 中设置多个高度分段缺失三角形的问题
  • 修复:当一个盖子的半径为零时,移除 CylinderGeometry 中的共线三角形
  • 性能:在 DirectionalLightShadow 渲染期间启用相机剔除
  • 重构:同步阴影相机与光源的up方向
  • 重构:优化 getPointShadow 方法
  • 文档:为 Geometry.instanceCount 添加描述性注释
  • 特性(addons):添加数学类 OBB
  • 特性(addons):在 GLTFLoader 中添加对 KHR_animation_pointer 的支持
  • 特性(addons):在 GLTFLoader 中为纹理添加 mimeType 信息
  • 特性(addons):添加 GLTFExporter
  • 特性(addons):在 GLTFExporter 中添加对 GLTF_SEPARATE 格式的支持
  • 特性(addons):在 GLTFExporter 中添加实例化和光照扩展
  • 特性(addons):在 GLTFExporter 中添加 draco 选项
  • 特性(addons):添加 DRACOExporter
  • 特性(addons):引入新的 LightShadowAdapter
  • 特性(addons):添加 InstancedMaterial.js文件,整合所有实例化材质扩展
  • 特性(addons):引入 AttenuationMaterial,整合衰减材质扩展
  • 特性(addons):引入 LatheBuilder
  • 修复(addons):修正 HeatmapGeneratorIDWMapGeneratordispose 方法
  • 修复(addons):当相机在包围盒内时,修正 LightShadowAdapter 中的阴影盒计算
  • 修复(addons):修正 TransformControls 中相机处于极端位置时的轴平面位置计算错误
  • 重构(addons):将 LightShadowAdapter.bindBoxBox3 改为 OBB
  • 重构(addons):移除 TimerClock 中对 Date.now() 的兼容性回退
  • 特性(examples):添加 material_shader_volume_layered 示例
  • 特性(examples):在 geometry_geometries 中添加 TorusBuilder
  • 重构(examples):清理代码

Changelog

  • feat: add userData property to TextureBase
  • feat: add vertical fade support to DirectionalLightShadow.frustumEdgeFalloff
  • feat: add isIdentity method to Matrix3
  • feat: add asyncReadPixel option to Renderer
  • feat: add lerp method to MathUtils
  • fix: resolve missing triangles issue with multiple height segments in CylinderGeometry
  • fix: remove collinear triangles in CylinderGeometry when one cap radius is zero
  • perf: enable camera culling during DirectionalLightShadow rendering
  • refactor: synchronize shadow camera orientation with light source
  • refactor: optimize getPointShadow method
  • docs: add descriptive comment for Geometry.instanceCount
  • feat(addons): add OBB
  • feat(addons): add support for KHR_animation_pointer in GLTFLoader
  • feat(addons): add mimeType information to textures in GLTFLoader
  • feat(addons): add GLTFExporter
  • feat(addons): add support for GLTF_SEPARATE format in GLTFExporter
  • feat(addons): add instancing and light extensions to GLTFExporter
  • feat(addons): add draco option to GLTFExporter
  • feat(addons): add DRACOExporter
  • feat(addons): introduce LightShadowAdapter
  • feat(addons): add InstancedMaterial.js
  • feat(addons): introduce AttenuationMaterial
  • feat(addons): introduce LatheBuilder
  • fix(addons): correct dispose methods for HeatmapGenerator and IDWMapGenerator
  • fix(addons): correct shadow box calculation in LightShadowAdapter when camera is inside Box
  • fix(addons): correct axis plane position calculation bug in TransformControls when the camera is in extreme positions
  • refactor(addons): change LightShadowAdapter.bindBox from Box3 to OBB
  • refactor(addons): drop fallback to Date.now() in Timer and Clock
  • feat(examples): add material_shader_volume_layered example
  • feat(examples): add TorusBuilder in geometry_geometries
  • refactor(examples): cleanup

Full Changelog: v0.3.0...v0.3.1

v0.3.0

27 Sep 06:40
Compare
Choose a tag to compare

迁移指南

把t3d从v0.2.x升级到v0.3.x,主要注意以下接口变更,否则可能会导致升级后项目运行失败:

着色器规则变更

  • 新增alphaTest_pars_frag,如果您使用了alphaTest_frag注意要和新片段配合使用。并且ALPHATEST 的宏不再携带 alphaTest 的值,alphaTest 的值使用 u_AlphaTestuniform 的形式传入
  • 新增 diffuseMap_pars_vertdiffuseMap_vert 着色器片段,如果您的自定义着色器中使用了 diffuseMap_pars_fragdiffuseMap_frag,请注意必须要和新片段搭配使用。
  • 宏定义USE_DIFFUSE_MAPUSE_ALPHA_MAPUSE_EMISSIVEMAPUSE_AOMAP中不再包含UV通道信息,您可以在DIFFUSEMAP_UVALPHAMAP_UVEMISSIVEMAP_UVAOMAP_UV中获取该信息。在新版本中,这四种贴图可以默认支持设置任意0-8的UV通道。

接口兼容移除

  • 移除针对带 WebGL 前缀的枚举兼容代码,包括: WEBGL_PIXEL_FORMAT, WEBGL_PIXEL_TYPE, WEBGL_TEXTURE_FILTER, WEBGL_TEXTURE_WRAP, WEBGL_COMPARE_FUNC, WEBGL_OP
  • 移除针对 WebGLRenderer 上旧属性的兼容代码,包括:renderTargetstatevertexArrayBindings
  • 移除针对 WebGLRenderPass 类的兼容代码
  • 移除针对 WebGLProperties 类的兼容代码
  • 移除针对 MatcapMaterial 类的兼容代码,新代码已转移到 addons
  • 移除 GLTFUtils.sanitizeNodeName

接口新增告警

  • CubeGeometry 类新增废弃告警
  • Group 类新增废弃告警
  • WebGLRenderer.gl 接口新增废弃告警
  • WebGLRenderer.render() 接口新增废弃告警
  • Renderer.renderPass 接口新增废弃告警
  • PMREM 新增废弃告警,请使用 PMREMGenerator 代替
  • GeometryUtils.mergeBufferAttributes() 接口新增废弃告警,请使用 GeometryUtils.mergeAttributes() 代替

变更日志

特性:添加 PIXEL_FORMAT.R11F_G11F_B10F
特性:为 fromArraytoArray 方法添加 denormalizenormalize 参数
特性:引入 MathUtils
修复:将 afterRender 回调上下文设置为 renderer
重构:移除已弃用的代码
重构:增加对更多 UV 通道的支持
重构:将材质 alphaTestdefine 移动到 uniform
特性(插件):添加 CircleGeometry
特性(插件):引入 Timer
特性(插件):引入 GradientSky
特性(插件):引入 PlanarReflectionProbe
特性(插件):为 GLTFLoader 添加 EXT_mesh_gpu_instancing 扩展
特性(插件):引入 PolyhedronBuilder
修复(插件):限制 TransformControls 中的指针事件仅响应左键
重构(插件):优化 GLTFLoader 扩展处理
特性(示例):添加 webgl_query_occlusion_tester 示例

Migration Guide

When upgrading t3d from v0.2.x to v0.3.x, pay attention to the following interface changes to avoid potential project failures after the upgrade:

Shader Rule Changes

  • Added alphaTest_pars_frag. If you use alphaTest_frag, make sure to use it with the new fragment. Additionally, the ALPHATEST macro no longer carries the alphaTest value. The alphaTest value is now passed as a uniform named u_AlphaTest.
  • New shader chunks diffuseMap_pars_vert and diffuseMap_vert have been added. If your custom shaders use diffuseMap_pars_frag or diffuseMap_frag, ensure they are used in conjunction with the new chunks.
  • The macros USE_DIFFUSE_MAP, USE_ALPHA_MAP, USE_EMISSIVEMAP, and USE_AOMAP no longer include UV channel information. You can obtain this information from DIFFUSEMAP_UV, ALPHAMAP_UV, EMISSIVEMAP_UV, and AOMAP_UV. In the new version, these four types of maps can support any UV channel from 0 to 8 by default.

Interface Compatibility Removal

  • Removed compatibility code for enums with the WebGL prefix, including: WEBGL_PIXEL_FORMAT, WEBGL_PIXEL_TYPE, WEBGL_TEXTURE_FILTER, WEBGL_TEXTURE_WRAP, WEBGL_COMPARE_FUNC, WEBGL_OP.
  • Removed compatibility code for old properties on WebGLRenderer, including: renderTarget, state, vertexArrayBindings.
  • Removed compatibility code for the WebGLRenderPass class.
  • Removed compatibility code for the WebGLProperties class.
  • Removed compatibility code for the MatcapMaterial class. The new code has been moved to addons.
  • Removed GLTFUtils.sanitizeNodeName.

New Deprecation Warnings

  • Added deprecation warning for the CubeGeometry class.
  • Added deprecation warning for the Group class.
  • Added deprecation warning for the WebGLRenderer.gl interface.
  • Added deprecation warning for the WebGLRenderer.render() interface.
  • Added deprecation warning for the Renderer.renderPass interface.
  • Added deprecation warning for PMREM. Please use PMREMGenerator instead.
  • Added deprecation warning for GeometryUtils.mergeBufferAttributes(). Please use GeometryUtils.mergeAttributes() instead.

Changelog

  • feat: add PIXEL_FORMAT.R11F_G11F_B10F
  • feat: add denormalize and normalize parameters to fromArray and toArray methods
  • feat: introduce MathUtils
  • fix: set afterRender callback context to renderer
  • refactor: remove deprecated code
  • refactor: add support for more uv coords
  • refactor: move material alpha test from define to uniform
  • feat(addons): add CircleGeometry
  • feat(addons): introduce Timer
  • feat(addons): introduce GradientSky
  • feat(addons): introduce PlanarReflectionProbe
  • feat(addons): add EXT_mesh_gpu_instancing extension for GLTFLoader
  • feat(addons): introduce PolyhedronBuilder
  • fix(addons): restrict pointer event to left button in TransformControls
  • refactor(addons): optimize GLTFLoader extensions handling
  • feat(examples): add webgl_query_occlusion_tester example

Full Changelog: v0.2.8...v0.3.0

v0.2.8

26 Aug 03:30
Compare
Choose a tag to compare

变更日志

  • 特性:在Scene中新增envDiffuseIntensityenvSpecularIntensity属性并标记environmentLightIntensity为弃用
  • 特性:为Plane添加静态方法intersectPlanes
  • 修复:修正TextureCube的mipmap上传
  • 重构:优化envMap参数的uniform上传
  • 特性(addons):在将对象添加到VirtualGroup时检查子父关系
  • 特性(addons):引入EnvLoaderEnvTextureCubeLoader
  • 特性(addons):添加一些额外的纹理加载器
  • 修复(addons):修正InfiniteGridShader中的变换计算
  • 修复(addons):修正正交相机下的分簇照明渲染
  • 修复(addons):修正GLTFLoader中的重复纹理的问题
  • 修复(addons):解决ViewControls中的初始渲染问题
  • 修复(addons):修正KTX2Loader中的ZSTD解码
  • 修复(addons):在TransformControls中将acos参数限制在[-1, 1]以防止NaN
  • 性能(addons):GLTFLoaderSafari >= 17时使用ImageBitmapLoader加载图片
  • 重构(addons):增强TransformControls中的平移交互体验
  • 特性(示例):添加material_alphahash示例
  • 特性(示例):添加custompass_xray示例
  • 重构(示例):在animation_skinned_instancing的GUI中添加Instance Count滑块
  • 重构(示例):重新组织和分类与纹理相关的示例

Changelog

  • feat: add envDiffuseIntensity and envSpecularIntensity attributes in Scene while deprecating environmentLightIntensity
  • feat: add static method intersectPlanes to Plane class
  • fix: correct mipmap uploading for TextureCube
  • refactor: optimize uniform uploading for envMap parameters
  • feat(addons): check child-parent relationship when adding object to 'VirtualGroup'
  • feat(addons): introduce EnvLoader and EnvTextureCubeLoader
  • feat(addons): add additional texture loaders
  • fix(addons): correct transform in InfiniteGridShader
  • fix(addons): correct clustered lighting for orthographic cameras
  • fix(addons): prevent duplicate textures in GLTFLoader
  • fix(addons): resolve initial rendering issue in ViewControls
  • fix(addons): correct ZSTD decoding in KTX2Loader
  • fix(addons): clamp acos parameter to [-1, 1] to prevent NaN in TransformControls
  • perf(addons): use ImageBitmapLoader in GLTFLoader for Safari >= 17
  • refactor(addons): enhance interactive experience for translating in TransformControls
  • feat(examples): add material_alphahash example
  • feat(examples): add custompass_xray example
  • refactor(examples): add Instance Count slider to animation_skinned_instancing GUI
  • refactor(examples): reorganize and classify texture-related examples

Full Changelog: v0.2.7...v0.2.8

v0.2.7

18 Jul 01:50
Compare
Choose a tag to compare

变更日志

  • 特性:新增Texture2DArray
  • 特性:新增RenderTarget2DArray
  • 特性:新增一些数学方法
  • 修复:修改viewport取整方法为round
  • 性能:提升Matrix4.determinant()性能
  • 重构:优化WebGLTextures的内部实现
  • 特性(addons):新增CameraHelper
  • 特性(addons):新增SphereHelper
  • 特性(addons):ClusteredLightingManager支持聚光灯
  • 特性(addons):ExtrudeShapeBuilder新增generateTopgenerateBottom选项
  • 特性(addons):TubeBuilder新增generateStartCapgenerateEndCap选项
  • 修复(addons):修复GLTFLoader点渲染模式的赋值bug
  • 修复(addons):修复GeometryUtils.applyMatrix4中interleaved数据引发的bug
  • 修复(addons):GLTFLoader处理accessor的offset比stride大的情况
  • 特性(示例):新增material_shader_background示例
  • 重构(示例):优化camera_projection示例中相机切换的动画曲线

Changelog

  • feat: introduce Texture2DArray
  • feat: introduce RenderTarget2DArray
  • feat: add some mathematical methods
  • fix: change viewport to use round instead of floor
  • perf: make Matrix4.determinant() more efficient
  • refactor: optimize the internal implementation of WebGLTextures
  • feat(addons): introduce CameraHelper
  • feat(addons): introduce SphereHelper
  • feat(addons): add support for spot lights in ClusteredLightingManager
  • feat(addons): add generateTop and generateBottom options for ExtrudeShapeBuilder
  • feat(addons): add generateStartCap and generateEndCap options for TubeBuilder
  • fix(addons): rectify points draw mode assignment in GLTFLoader
  • fix(addons): correct the offset of interleaved buffer in GeometryUtils.applyMatrix4
  • fix(addons): handle accessor offset larger than stride in GLTFLoader
  • feat(examples): add material_shader_background example
  • refactor(examples): enhance projection transition linearity in camera_projection

Full Changelog: v0.2.6...v0.2.7

v0.2.6

22 May 03:55
Compare
Choose a tag to compare

变更日志

  • 特性:Matrix4新增lerpMatrices方法
  • 特性:支持顶点着色器中的自定义扩展语句
  • 特性:新增RenderTarget3D
  • 修复:修复聚光灯阴影bug
  • 性能:ShaderPostPass使用全屏三角面代替矩形面
  • 重构:为AnimationClip构造函数中的name参数添加默认值
  • 性能(addons):优化GLTFLoader中的正则性能
  • 重构(addons):优化DynamicFont
  • 重构(addons):新增PMREMGenerator并且废弃PMREM
  • 重构(addons):移除raycaster.setFromCamera方法中的相机类型参数
  • 特性(示例):新增webgl_clipculldistance示例
  • 特性(示例):新增clustered lighting示例
  • 重构(示例):替换material_texture_bumpmap中的AssimpJson模型为glTF
  • 重构(示例):替换camera_cameras示例为camera_projection
  • 重构(示例):移动延迟渲染示例到renderer分类

Changelog

  • feat: add lerpMatrices method to Matrix4
  • feat: add support for custom extensions in vertex shader
  • feat: add RenderTarget3D
  • fix: spot light shadow bug
  • perf: replace fullscreen quad with fullscreen triangle in ShaderPostPass
  • refactor: add remaining default constructor parameters to AnimationClip
  • perf(addons): optimize regular expression matching rules in GLTFLoader
  • refactor(addons): optimize DynamicFont
  • refactor(addons): add PMREMGenerator and deprecate PMREM
  • refactor(addons): remove camera type parameter from raycaster.setFromCamera method
  • feat(examples): add webgl_clipculldistance example
  • feat(examples): add clustered lighting example
  • refactor(examples): replace AssimpJson with glTF model in material_texture_bumpmap
  • refactor(examples): replace camera_cameras with camera_projection example
  • refactor(examples): move deferred rendering examples to renderer category

Full Changelog: v0.2.5...v0.2.6

v0.2.5

21 Mar 15:03
Compare
Choose a tag to compare

变更日志

  • 特性:新增RectAreaLight
  • 特性:shader报错信息添加shader名称
  • 特性:Vector2新增negatedot方法
  • 修复:修复RectAreaLight的更新bug
  • 修复:修复skeleton的更新bug
  • 特性(addons):为EdgesBuilder.getGeometryData新增strideoffset参数
  • 特性(addons):为SkyBox增加雾效过渡功能
  • 特性(addons):为SDFTextShader新增阴影和描边功能
  • 修复(addons):修复VirtualGroup计算pivot的bug
  • 特性(示例):新增text_bitmap_dynamic示例
  • 特性(示例):新增material_texture_lightmap示例
  • 特性(示例):新增text_sdf_dynamic示例
  • 重构(示例):美化material_shader_water_pbr示例

Changelog

  • feat: add RectAreaLight
  • feat: add name to the shader error log
  • feat: add negate and dot methods to Vector2
  • fix: rectify bug in RectAreaLight
  • fix: skeleton update bug
  • feat(addons): add stride and offset parameters to EdgesBuilder.getGeometryData
  • feat(addons): add fog support to SkyBox
  • feat(addons): add support for shadow and outline to SDFTextShader
  • fix(addons): VirtualGroup get pivot bug
  • feat(examples): add text_bitmap_dynamic example
  • feat(examples): add material_texture_lightmap example
  • feat(examples): add text_sdf_dynamic example
  • refactor(examples): beautify material_shader_water_pbr example

Full Changelog: v0.2.4...v0.2.5

v0.2.4

21 Feb 09:13
Compare
Choose a tag to compare

变更日志

  • 特性:支持整型数据类型的attribute
  • 特性:支持整型数据类型的Texture在shader中的采样
  • 重构:为renderer.readRenderTargetPixels添加统一的promise返回
  • 特性(addons):新增ViewControls
  • 特性(addons):ExtrudeShapeBuilder 支持沿曲线挤出
  • 修复(addons):修复InfiniteGridShader
  • 修复(addons):修复TransformControls的颜色空间
  • 特性(示例):新增曲线运动示例
  • 特性(示例):新增3D直方图示例
  • 重构(示例):在ik示例中使用TransformControls
  • 构建:新增 .vscode/extensions

Changelog

  • feat: support integer attributes
  • feat: support sampling of integer textures in shader
  • refactor: add promise return for renderer.readRenderTargetPixels
  • feat(addons): add ViewControls
  • feat(addons): supports extrusion along path for ExtrudeShapeBuilder (#22)
  • fix(addons): InfiniteGridShader
  • fix(addons): fix gizmo colors for TransformControls
  • feat(examples): add curve motion example
  • feat(examples): add histogram example
  • refactor(examples): use TransformControls in ik example
  • build: add .vscode/extensions

Full Changelog: v0.2.3...v0.2.4

v0.2.3

21 Dec 07:48
Compare
Choose a tag to compare

Changelog

  • feat: support webgl multi draw
  • feat: add MIN and MAX for BLEND_EQUATION
  • feat: add keyframe interpolants
  • refactor: add warning to WebGLRenderer if beginRender is not called before renderRenderableItem
  • feat(examples): add planar shadow example
  • feat(examples): add webgl_mesh_batch example
  • feat(examples): add geometry images example
  • feat(examples): add ground projected skybox example
  • feat(examples): add bitmap text example
  • feat(examples): add oit example
  • refactor(examples): moved camera controls examples to controls category
  • refactor(examples): update transform controls example
  • feat(addons): add ColorGradient
  • feat(addons): add TransformControls
  • feat(addons): add SceneUtils
  • feat(addons): add snapping for transform controls
  • feat(addons): add InstancedBasicMaterial
  • fix(addons): fix bug in octree.addElement
  • fix(addons): fix picking for TransformControls
  • refactor(addons): avoid duplicate assignments in Pathfinding
  • refactor(addons): make octree more versatile
  • refactor(addons): optimize SkeletonHelper
  • fix(docs): add return type

v0.2.0

15 Aug 07:57
Compare
Choose a tag to compare

[Breaking Changes]

  • WebGLRenderPass -> WebGLRenderer.
  • WebGLRenderer: add beginRender() and endRender() methods. If you are using renderScene() method, they are already called internally.
  • WebGLRenderer: rename renderer.gl to renderer.context.
  • Refactor WebGLProperties to PropertyMap. The key value of webgl resource obtained from the object is changed to _gl{id}$.

[Other Changes]

  • Material: add forceUpdateUniforms property.
  • FileLoader: optimize progress event.
  • WebGLRenderPass: export the init method to handle contextlost.
  • WebGLRenderPass: add shaderCompileOptions.
  • Examples: Add unrealbloom example.
  • Remove long-deprecated code.
  • GLTFLoader: Remove the unique processing of node names.