Package Exports
- @d3p1/thr2pxl
Readme
Introduction
An efficient model-to-pixel transformation with motion effects, leveraging WebGL's hardware acceleration and GPGPU through Three.js:
[!TIP] If you would like to implement a similar effect on a 2D image, you can use the related library
d3p1/img2pxl
.
[!NOTE] This library was inspired by these excellent tutorial:
Installation
You can install this library using a package manager like npm
:
npm install @d3p1/thr2pxl
Or you can use a CDN like jsDelivr and this importmap in the <head>
of your html
file:
<head>
...
<script type="importmap">
{
"imports": {
"@d3p1/thr2pxl": "https://cdn.jsdelivr.net/npm/@d3p1/thr2pxl@<version>/dist/thr2pxl.min.js",
"three": "https://cdn.jsdelivr.net/npm/three@<version>/build/three.module.min.js",
"tweakpane": "https://cdn.jsdelivr.net/npm/tweakpane@<version>/dist/tweakpane.min.js"
}
}
</script>
...
</head>
[!NOTE] Remember to replace the
<version>
with the actual version ofthr2pxl
and its peer dependencies (three
andtweakpane
). To do that, you can check thepackage.json
of the last release and get required versions from there.
Usage
Using this library is straightforward:
Go to our builder page and make the desired customizations in the tweak panel to achieve the desired effect.
Use the
Copy
button to obtain the configuration that produces the desired effect.Instantiate the library with the configuration copied in the previous step, for example:
import Thr2pxl from '@d3p1/thr2pxl'
new Thr2pxl({
models: {
0: {
src: {
highPoly: <model-high-poly-src>,
lowPoly: <model-low-poly-src>
},
width: <model-width>,
height: <model-height>,
point: {
size: 5,
motion: {
frequency: 0.1,
strength: 1.5,
ratio: 0.25,
lifeDecay: 0.2
}
}
},
pointer: {
strength: 0.2,
minRad: 1,
maxRad: 2,
pulseStrength: 0.2,
pulseFrequency: 1
}
}
})
[!NOTE] To gain a deeper understanding of how to use this library and how it works under the hood, visit the wiki page (in progress).
Changelog
Detailed changes for each release are documented in CHANGELOG.md
.
License
This work is published under MIT License.
Author
Always happy to receive a greeting on: