初めてのシステムと日記

システムも日記も初めてです。

Image_3D

PHPで3Dを作成するライブラリを探していたら、

PEAR::Image_3Dというものがあったので試してみました。

※参照ブログ

http://blog.asial.co.jp/257

<?php

set_time_limit(0);
require_once('Image/3D.php');

//3次元座標を生成
$world = new Image_3D();
$world->setColor(new Image_3D_Color(250, 250, 250));

//ライティング生成
//第2引数はライティングの座標
$light = $world->createLight('Light', array(0, 0, 100));
$light->setColor(new Image_3D_Color(255, 255, 255));

//3次元形状を生成
//今回はtextを生成、第2引数に文言を指定
$text = $world->createObject('text', 'hogehoge');
$text->setColor(new Image_3D_Color(0, 200, 255));
//大きさ、3次元軸を中心とした回転、XYZ座標への移動を指定
$text->transform($world->createMatrix('Scale', array(10, 10, 10)));
$text->transform($world->createMatrix('Rotation', array(0, 0, 0)));
$text->transform($world->createMatrix('Move', array(-200,0, 0)));

$world->setOption(Image_3D::IMAGE_3D_OPTION_BF_CULLING, false);
$world->setOption(Image_3D::IMAGE_3D_OPTION_FILLED, true);

$world->createRenderer('perspectively');
$world->createDriver('GD');

//画像ファイル名指定
$filename = "test.png";

//画像の解像度を指定
$world->render(1000, 600, $filename);

//出力
header("Content-Type: image/png");
readfile($filename);

?>

出力結果がこれ

テキスト以外に立方体、三角錐などのオブジェクトを生成できます。

まだ触り程度なのでマニュアルなど駆使して詳しくやってみたいと思いますが。。

PHPで3Dを作るところに価値があるのか、、元3Dデザイナーとしては不安。。