跳到內容

每條游來游去的小魚,都是正在瀏覽這一頁的訪客,有一條是你自己 ( ´ ▽ ` )ノ 覺得干擾閱讀的話,可以把小魚關掉。

櫻吹雪

bg

大家有看過新海誠的經典作品《秒速 5 公分》嗎?

聽說最近要重返大銀幕啦,有興趣的話推薦大家一起來胃痛一下。ᕕ( ゚ ∀。)ᕗ(大誤

電影的場景真的很美,櫻花飄落的畫面真的如詩如畫。

配上山崎將義的《One more time, One more chance》,氣氛真的很到位,惆悵感滿滿。

分享一篇我覺得寫得很好的觀後感,內含據透,請自行斟酌。

現在讓我們在網頁上感受一下櫻花飄落的浪漫吧。(´,,•ω•,,)

名稱描述
Babylon.js3D 引擎
ThinInstance輕量級實例化,用於高效渲染大量相同幾何體,減少 draw call
Post-processing增強渲染效果,例如:鏡頭模糊、顏色分割等等
Dynamic Texture可動態修改的材質,常用於即時產生圖案或文字

設定基本參數。

重新產生
0
<template>
<div class="w-full flex flex-col gap-4 py-2">
<div class="flex flex-col gap-2 border p-4">
<div class="flex gap-6">
<base-input
v-model.number="quantity"
type="range"
:label="`${t('quantity')}: ${quantity}`"
class="flex-1"
:min="100"
:step="1"
:max="10000"
/>
</div>
<div
class="w-full cursor-pointer select-none border rounded px-4 py-2 text-center"
@click="refresh()"
>
{{ t('regenerate') }}
</div>
</div>
<bg-sakura-fubuki
v-slot="{ fps }"
:key="key"
:capacity="quantity"
:particle-size="{ width: 1.05, height: 1.5 }"
class="bg h-full w-full"
>
<div class="absolute left-0 top-0 p-4 opacity-40">
{{ fps }}
</div>
</bg-sakura-fubuki>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useI18n } from 'vue-i18n'
import BaseInput from '../../base-input.vue'
import BgSakuraFubuki from '../bg-sakura-fubuki.vue'
const { t } = useI18n()
const quantity = ref(500)
const key = ref('')
function refresh() {
key.value = Math.random().toFixed(5)
}
</script>
<style scoped lang="sass">
.text-layer
background: linear-gradient(20deg, light-dark(#def4ff, #1a2a3a), light-dark(#FFF, #222))
</style>
<template>
<div class="w-full flex flex-col gap-4 py-2">
<base-checkbox
v-model="enable"
:label="t('enable')"
class="example-ctrl"
/>
<transition name="opacity">
<bg-sakura-fubuki
class="left-0 top-0 z-50 h-lvh w-full duration-500 !fixed"
:class="classes"
/>
</transition>
</div>
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import BaseCheckbox from '../../base-checkbox.vue'
import BgSakuraFubuki from '../bg-sakura-fubuki.vue'
const { t } = useI18n()
const enable = ref(false)
const classes = computed(() => ({
'opacity-0': !enable.value,
'opacity-100': enable.value,
}))
</script>

使用 babylon.js 產生實體粒子,才有辦法產生鏡頭特效。(≖‿ゝ≖)✧

interface Props {
/** 粒子貼圖 */
particleSrc?: string;
/** 粒子尺寸 */
particleSize?: Record<'width' | 'height', number>;
/** 粒子容量 */
capacity?: number;
/** 粒子移動速度。
* - 正 x:往左
* - 正 y:往上
* - 正 z:射出螢幕方向
*/
velocity?: Record<'x' | 'y' | 'z', number>;
}