[英]Loading 3D model with animation using CreateFromMorphTargetSequence Three.js
[英]Loading a 3d model from DB and using it in Three.js
現在我的任務是從 MySQL 數據庫加載 3d 模型並在 Three.js 中使用它。
這是我所做的,
我創建了一個這樣的數據庫
models{model_id int(4), model mediumblob};
我可以成功地從數據庫加載 JSON 格式的 3d 模型。
我知道如何從數據庫檢索數據。
但我的問題是 - “我如何制作從數據庫加載的 JSON 文件以供 Three.js 使用?”
我像這樣按常規加載 Json 文件
// instantiate a loader
var loader = new THREE.JSONLoader();
// load a resource
loader.load(
// resource URL
'models/animated/monster/monster.js',
// Function when resource is loaded
function ( geometry, materials ) {
var material = new THREE.MultiMaterial( materials );
var object = new THREE.Mesh( geometry, material );
scene.add( object );
}
);
這是 Three.js 文檔中的示例代碼。
資源 URL 似乎是一個物理位於根目錄中的文件。 但我想不通“如何將從數據庫獲得的模型加載到 Three.js?”
我不要求任何代碼。
直接指導我在 Three.js 中加載文件
我熟悉加載一個簡單的圖像。 但這是面向 html 的。 這是面向 Three.js 的。
看着我需要我的 PHP 頁面來顯示來自 mysql 數據庫的我的 BLOB 圖像我會嘗試使用: <img src="image.php?id=<?php echo $image_id; ?>" />
行並使用src
屬性對於 js 加載器,因此在 js 中(我假設它正在通過 html 在網頁上工作)類似於:
js:
// set up a path variable
var filed = 'model.php?id=<?php echo $sql_id; ?>'
// instantiate a loader
var loader = new THREE.JSONLoader();
// load a resource
loader.load(
// resource URL location
filed,
// Function when resource is loaded
function ( geometry, materials ) {
var material = new THREE.MultiMaterial( materials );
var object = new THREE.Mesh( geometry, material );
scene.add( object );
}
);
然后是php:
<?php
function load() { $sql = "SELECT model FROM ovf_items_cycles"; if(!$res = $_ENV['db']->query($sql)) { echo ' failed to operate'; } while($row = $res->fetch_assoc() ) { echo $row['pid'] . ' ' . $row['modeldata']; } }
?>
這是一個草圖,因為我的 php 不太好。 但最終,如果您還可以將 blob 文件的路徑存儲在您的 sql 中並為 loader 變量訪問該路徑,那將會容易得多。
看看 Three.js 加載器是否有一個你使用的 parse 函數而不是 load 函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.