Add volumetric clouds3d renderer
Raymarches a horizontal cloud layer (28 steps, 4-octave 3D fBm).
Camera path is sinusoidal in altitude so the view dips into the
cloud deck at intervals for a 'fly through the edges' feel.
Density threshold from weather: sunny -> sparse, stormy -> overcast.
Renderer is selected via CONFIG.renderer ('clouds2d' or 'clouds3d').
This commit is contained in:
1 parent
3812f80f40
commit
0648676974
4 files changed
+289
-12
No files matched your search
+9
-5
@@ -474,12 +474,14 @@
|
||||
<script src="vendor/three.min.js"></script>
|
||||
<script src="vendor/vanta.clouds.min.js"></script>
|
||||
<script src="vendor/vanta.clouds2.min.js"></script>
|
||||
<script src="vendor/clouds3d.js"></script>
|
||||
<script src="vendor/clouds2d.js"></script>
|
||||
<script>
|
||||
window.__clouds2dStarted = true;
|
||||
try {
|
||||
var noiseDataUri = 'data:image/png;base64,PLACEHOLDER';
|
||||
var useVanta = !(window.CONFIG && window.CONFIG.renderer === 'clouds2d');
|
||||
var renderer = (window.CONFIG && window.CONFIG.renderer) || 'vanta';
|
||||
var useVanta = (renderer !== 'clouds2d' && renderer !== 'clouds3d');
|
||||
var effect;
|
||||
if (useVanta && typeof VANTA !== 'undefined') {
|
||||
effect = (VANTA.CLOUDS2 || VANTA.CLOUDS)({
|
||||
@@ -500,14 +502,16 @@ if (useVanta && typeof VANTA !== 'undefined') {
|
||||
texturePath: noiseDataUri
|
||||
}) || { setOptions: function() {} };
|
||||
} else {
|
||||
// Pick the right renderer based on CONFIG.renderer
|
||||
var _renderFn = (renderer === 'clouds3d' && window.clouds3dRender)
|
||||
? window.clouds3dRender
|
||||
: window.clouds2dRender;
|
||||
effect = { setOptions: function() {} };
|
||||
function c2dRender() {
|
||||
var c2dCanvas = document.getElementById('vanta');
|
||||
if (!c2dCanvas) return;
|
||||
c2dCanvas.width = window.innerWidth;
|
||||
c2dCanvas.height = window.innerHeight;
|
||||
if (typeof window.clouds2dRender === 'function') {
|
||||
window.clouds2dRender(c2dCanvas);
|
||||
if (typeof _renderFn === 'function') {
|
||||
_renderFn(c2dCanvas);
|
||||
}
|
||||
}
|
||||
c2dRender();
|
||||
|
||||
Reference in new issue
Block a user