All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
renderSortOrder
toSprite3D
. - Added
lerp
toPoint3D
. - Added damping (inertia) support for
CameraOrbitControl
.
- Fixed an issue which caused some meshes not to render when using vertex colors.
- Added support for HDR cubemaps when using
ImageBasedLighting
orSkybox
(encoded using the RGBE8 format). - Added support for changing the exposure of a
Skybox
. Skybox
is now rendered with gamma correction.- Added request options to
glTFAsset.fromURL
.
- Fixed an issue which caused a crash when rendering shadows with skinned meshes.
- Added support for PixiJS v7 and new method of loading assets. If you are using PixiJS v7+ and npm, import from pixi3d/pixi7 i.e.
import { Model } from "pixi3d/pixi7"
. - Added several math functions to
Point3D
. - Added several math functions to
Quaternion
. - Added
glTFAsset.fromURL
, an async function to load a glTF file. Only works when using PixiJS v7+. - Added support to render shadows when using instancing.
- No longer transpiled to ES5, if you need these targets (e.g. IE 11) you'll need to transpile yourself with Babel or other tools capable of porting to ES5.
- Renamed
PostProcessingSprite
toCompositeSprite
. - Renamed
ObservablePoint3D
toPoint3D
and changed order of constructor arguments. - Renamed
ObservableQuaternion
toQuaternion
and changed order of constructor arguments. - Renamed
Matrix4
toMatrix4x4
. - Constructor arguments was changed for
PickingHitArea
. Camera
propertiesview
,projection
andviewProjection
was changed fromFloat32Array
toMatrix4x4
.- Many
Matrix4x4
properties was changed fromFloat32Array
to eitherPoint3D
orQuaternion
. Plane.normal
was changed fromFloat32Array
toPoint3D
.Ray.direction
was changed fromFloat32Array
toPoint3D
.Ray.origin
was changed fromFloat32Array
toPoint3D
.ProjectionSprite.modelViewProjection
was changed fromFloat32Array
toMatrix4x4
.
PickingHitArea.fromObject
was removed, use regular constructor instead.StandardPipeline.createPostProcessingSprite
was removed, useCompositeSprite
instead.
- Fixed an issue which caused a crash when all invisible instances was destroyed.
- Fixed an issue which caused glTF loading function to return before all resources was loaded.
- Added support for PixiJS extensions API.
- Added
Vec3.lerp
.
- Fixed an issue which could cause instanced meshes to not render correctly after changing visibility for those objects.
- Fixed an issue which caused glTF embedded images to not load correctly.
- The default value for
alphaMode
onStandardMaterial
was changed toblend
to make it easier to render transparent objects without having to changealphaMode
. To get the previous behavior, setalphaMode
toopaque
. Sprite3D
objects are now rendered after all meshes to fix draw order issues.Sprite3D
objects are now rendered from back to front by default.
- Removed peer dependencies from
package.json
which could cause issues with multiple PixiJS versions when using bundlers.
- Added
Mesh3D.createSphere
function for creating a sphere mesh. - Added support for vertex colors.
- Added
Material.from
function to be able to create a custom material without the need of extending fromMaterial
.
- Fixed an issue which caused picking interaction to not function correctly when resolution was any other value than 1.
- Fixed an issue which caused
Skybox
to not render correctly when using PixiJS v6+. - Fixed sorting of meshes when using values less than 0.
- Fixed warning when using
PostProcessingSprite
with PixiJS v6+.
- Skybox will now be rendered before other meshes by default.
- Fixed an issue which caused camera orbit control not to function correctly in Firefox.
- Added a static function to create a
PickingHitArea
without the need to pass a renderer.
- Fixed an issue which caused skinning to work incorrectly when PIXI.settings.RESOLUTION = 2.
- Added a function to set resolution for
PostProcessingSprite
.
- Fixed an issue which caused
StandardMaterial
to set incorrect transforms on some textures.
- Fixed an issue which caused some glTF materials to not load correctly.
- Fixed an issue which caused
PostProcessingSprite
resolution to not be set.
- Added
AABB
(axis-aligned bounding box). - Added support for calculating the bounding box (AABB) for a model and mesh.
- Fixed an issue which caused some glTF files to not load correctly when byte stride was set.
- Fixed an issue which caused some binary glTF files (glb) to not load correctly.
- Fixed an issue which caused
PostProcessingSprite
to crash if application/renderer was destroyed.
- Added support to use textures included in spritesheets when using
StandardMaterial
. - Added support for camera obliqueness.
- Debug object which can be used to more easily debug on mobile devices.
- Vertex skinning now uses textures for joint matrices as default.
- Better error handling when vertex skinning is not supported on device/environment.
- Use lower case for
SpriteBillboardType
"spherical" and "cylindrical".
- Fixed an issue which caused shadows to be displayed incorrectly when using multiple lights.
- Fixed an issue which caused a crash if application/renderer was destroyed.
- Added
Sprite3D
which works like regular PixiJS 2D sprites but in 3D space. - Improved support for glTF.
- Added
fromHex
function toColor
. - Added
TextureTransform
which can used to offset, scale and rotate texture coordinates. - Added
min
andmax
values for mesh geometry attributes to be able to create bounds for a mesh. - Meshes rendered using
StandardPipeline
is now sorted byrenderSortOrder
.
- Removed
setFromMultiply
fromTransformMatrix
, usemultiply
function instead. - Removed
factory
fromStandardMaterial
, usecreate
function instead. - Removed
addRenderPass
andremoveRenderPass
fromStandardPipeline
, userenderPasses
array instead. Joint
now extendsContainer3D
.- Removed ambient lights, use
ImageBasedLighting
withCubemap.fromColor
instead. - Renamed
TransformMatrix
toMatrix4
. - Renamed
morphWeights
totargetWeights
onMesh3D
. - Setting
renderSortType
onMaterial
no longer changesdepthMask
. - Default exposure for
StandardMaterial
was changed from 3 to 1. - Changed
enabledRenderPasses
onMesh3D
to an object instead of an array. - Changed the constructor for
ShadowCastingLight
to use an options object. Argumentssoftness
andshadowArea
was added as properties instead.
- Fixed issues which caused
Camera
,PostProcessingSprite
andPickingHitArea
to not work correctly when renderer resolution was more than 1. - Fixed an issue which caused
screenToRay
onCamera
to return incorrect results whenorthographic = true
. - Fixed orientation for default IBL lookup texture.
- Added
scale
function toMat4
.
- Setting
alphaMode
onStandardMaterial
no longer changesdepthMask
orrenderSortType
. - Setting
renderSortType
onMaterial
also changesdepthMask
.
- Fixed an issue which caused a crash when application was destroyed.
- New functionality to
PostProcessingSprite
so it can be used for rendering a 3D object as a 2D sprite. - Added
translate
function toMat4
. - Added
lookAt
function toTransform3D
to make it easier for an object to be rotated towards a specified point.
- Added
destroy
function to an instanced model. - Added functionality to create a
Color
object from bytes.
- Turn off writing to depth buffer when rendering transparent objects using
StandardMaterial
. This feature if only available in PixiJS 6.0+. Color
default alpha has been changed to 1 instead of 0.
- Fixed an issue which caused mesh instances to be rendered even if they were
visible = false
. - Fixed an issue which caused
StandardMaterial
not to render double sided materials correctly. - Using
StandardMaterial
alpha mode "mask" previously rendered the object as transparent, this should no longer be the case. - Fixed
StandardMaterial
shader for Safari with WebGL 2.0 enabled.
- Fixed an issue which caused WebGL errors when using instancing.
- Support for creating a
Cubemap
from colors. - Support for instancing using
createInstance
onMesh3D
orModel
. - Simple
Color
class with RGBA components. - Math functionality:
Vec3
,Quat
,Mat4
,Plane
andRay
. - Support for loading binary glTF (.glb) files.
- Additional components for
TransformMatrix
. - Convert screen coordinates to a
Ray
usingCamera
. - Enable/disable render passes on
Mesh3D
.
- Renamed
texture
tocubemap
on a resource loaded from a cubemap file. - Renamed
CubeMipmapTexture
toCubemap
. - Renamed
renderType
torenderSortType
onMaterial
. - Renamed
renderPasses
toenabledRenderPasses
onMesh3D
. - Renamed
texture
tocubemap
onSkybox
. - Use
Color
instead of array onStandardMaterial
,MaterialRenderPass
andLight
. - Renamed
CubeMipmapResource
toCubemapResource
. Skybox.from
takes an object as an argument instead of a string.- Renamed
setFromMultiplyWorldLocal
tosetFromMultiply
onTransformMatrix
.
Cubemap.fromSource
was removed, useCubemap.fromFaces
instead.TransformMatrix
target
property was removed, use math functionality instead.
- Fixed loading of glTF assets pointing to same resources.
- Honor
stopped
interactions forCameraOrbitControl
.