Perpustakaan PHP Percuma untuk Rendering 3D Adegan Kompleks
Perpustakaan Rendering 3D PHP sumber terbuka membolehkan Pembangun Perisian menghasilkan & memanipulasi grafik 3D, parsing fail OBJ dan menerapkan pelbagai tekstur & bahan
Apakah PHP Render?
Pembangunan web telah maju dengan ketara, sentiasa berubah untuk menghasilkan pengalaman visual yang menakjubkan dan imersif. Rendering grafik 3D dahulunya terhad kepada sistem atau perisian khusus yang memerlukan pemahaman mendalam tentang bahasa seperti JavaScript atau C++. Walau bagaimanapun, terima kasih kepada perkembangan teknologi web, PHP—bahasa yang terkenal dengan kemudahan penggunaan dan kebolehannya— kini boleh digunakan untuk menyertakan rendering 3D ke dalam aplikasi web. Pembangun dapat menjana dan bekerja dengan objek 3D secara langsung dalam PHP dengan bantuan perpustakaan 3D PHP Render yang kukuh. Pengatur cara dapat dengan mudah mencipta dan mengendalikan visual 3D dengan bantuan perpustakaan 3D PHP Render yang berkuasa dan serba boleh. Antara banyak kelebihannya ialah keupayaan untuk menjana adegan dan model 3D yang rumit, mencipta animasi, mengurus pencahayaan dan bayang-bayang, serta menerapkan pelbagai tekstur & bahan.
Kemudahan penggunaan perpustakaan render 3D PHP adalah salah satu manfaat paling menonjolnya. Tanpa perlu mempelajari bahasa atau kerangka kerja baru yang rumit, pemaju perisian yang sudah biasa dengan PHP dapat dengan cepat memahami asas perpustakaan ini dan mula mencipta pemandangan 3D. Kerangka kerja dan perpustakaan PHP sedia ada dapat dengan mudah digabungkan dengan perpustakaan render 3D PHP. Ia menawarkan API yang mudah dan mudah diintegrasikan ke dalam aplikasi web yang menggunakan PHP. Dengan menjembatani jurang antara PHP dan grafik 3D, perpustakaan ini membolehkan pemaju perisian mencipta pengalaman visual yang kaya menggunakan kepakaran PHP mereka yang sedia ada. Pemaju boleh menggunakan ciri-ciri perpustakaan ini untuk menambah elemen 3D yang menarik secara visual ke dalam aplikasi dalam talian mereka, menjadikannya lebih hidup. Dengan kemudahan penggunaan, fleksibiliti, dan prestasinya, perpustakaan ini bersedia mengubah cara kita mengalami web, membawa kita lebih dekat kepada masa depan di mana grafik 3D menjadi ciri standard dalam interaksi dalam talian.
Mula Menggunakan PHP Render
Cara paling mudah untuk memasang pelepasan stabil PHP Render ialah menggunakan Composer. Sila gunakan perintah berikut untuk pemasangan yang lancar.
Pasang PHP Render melalui Composer
$composer install php-render Anda boleh memuat turun perpustakaan bersama yang telah dikompilasi daripada repositori Github.
Bekerja dengan Model 3D melalui API PHP
Perpustakaan PHP Render sumber terbuka membolehkan pembangun perisian mengendalikan pelbagai tugas yang berkaitan dengan model 3D dalam aplikasi PHP. Perpustakaan ini memudahkan penciptaan kandungan 3D yang dinamik & interaktif serta boleh menentukan bingkai utama dan peralihan untuk menganimasikan objek, kamera, dan lampu. Pembangun perisian dapat dengan mudah menjana dan memanipulasi pelbagai bentuk geometri, termasuk poligon, sfera, kiub, dan lain-lain. Mereka boleh mengubah suai verteks, menerapkan transformasi, dan menggabungkan bentuk untuk mencipta model yang kompleks. Contoh berikut menunjukkan bagaimana pembangun perisian dapat memuatkan model daripada fail OBJ menggunakan kod PHP.
Bagaimana Memuatkan Model dari Fail OBJ menggunakan API PHP?
define('EXAMPLE_DIR', __DIR__);
require __DIR__ . '/../example_base.php';
use PHPR\Context;
use PHPR\Shader\Shader;
use PHPR\Mesh\{ObjParser, Vertex};
use PHPR\Mesh\Vertex\{VertexPNU};
use PHPR\Mesh\VertexArray;
use PHPR\Math\{Vec3, Vec4, Mat4, Angle};
/**
* Simpel cube shader
*/
class CubeShader extends Shader
{
public Mat4 $mvp;
/**
* Vertex shader like thing
*/
public function vertex(Vertex $vertex, array &$out) : Vec4
{
$out['color'] = $vertex->normal;
return $this->mvp->multiplyVec3($vertex->position);
}
/**
* Fragment shader like thing
*/
public function fragment(array &$in, array &$out)
{
$out['color'] = $in['color']->normalize()->toColorInt();
// $out['color'] = 0xFFFFFF;
}
}
/**
* Build a model view projection
*/
$projection = Mat4::perspective(Angle::degreesToRadians(-45.0), EXAMPLE_RENDER_ASPECT_RATIO, 0.5, 10);
$view = (new Mat4())->inverse();
$model = (new Mat4)->translate(new Vec3(0.1, -0.3, -2.5));
$model->rotateX(0.4);
$model->rotateY(-0.6);
//$model->rotateY(-0.05);
/**
* Create shader object
*/
$shader = new CubeShader;
$shader->mvp = $model->multiply($view->multiply($projection, true), true);
/**
* Build the context
*/
$context = create_exmaple_context();
$context->bindShader($shader);
$context->enableDepthTesting();
// $context->setDrawMode(Context::DRAW_MODE_LINES);
/**
* Define the model
*/
$model = ObjParser::loadFromDisk(EXAMPLE_DIR . '/suv.obj');
/**
* draw the model
*/
$context->drawVertexArray($model);
render_example_context($context);
render_example_context_depth($context);
Rendering Adegan 3D melalui API PHP
Perpustakaan PHP Render sumber terbuka memudahkan pembangun perisian untuk memuat dan merender pelbagai jenis adegan 3D dalam aplikasi PHP mereka. Ia menyediakan API yang dipermudahkan untuk merender adegan 3D, lengkap dengan kawalan kamera, pencahayaan, dan manipulasi objek. Pembangun boleh mendefinisikan objek, menempatkannya dalam adegan, dan menentukan penampilan serta perilakunya. Selain itu, pembangun perisian dapat menjana dan memanipulasi pelbagai bentuk geometri, termasuk poligon, sfera, kiub, dan lain-lain.
Visualisasi Produk yang Lebih Baik
Perpustakaan 3D PHP Render percuma memberi kuasa kepada pembangun perisian untuk menambah elemen 3D yang menakjubkan secara visual ke dalam aplikasi web mereka dengan mudah. Laman web e-dagang boleh menggunakan perpustakaan 3D PHP Render untuk menawarkan paparan produk interaktif, membolehkan pelanggan memutar, zum, dan memeriksa produk dari pelbagai sudut. Pengalaman imersif ini meningkatkan pemahaman produk dan meningkatkan kepuasan pelanggan. Contoh berikut menunjukkan interpolasi koordinat barycentric di dalam segitiga yang dilukis menggunakan API PHP.
Bagaimana Melakukan Interpolasi Koordinat Barycentric di dalam Segitiga yang Dilukis melalui PHP?
use PHPR\Shader\TriangleTestShader;
use PHPR\Mesh\Vertex;
use PHPR\Math\Vec3;
$context = create_exmaple_context();
$context->bindShader(new TriangleTestShader);
// $context->setDrawMode(\PHPR\Context::DRAW_MODE_LINES);
/**
* Vertex subclass with color attribute
*/
class ExampleVertex extends Vertex
{
public static function c(float $x, float $y, float $z, float $r, float $g, float $b)
{
$v = ExampleVertex::cP($x, $y, $z);
$v->color = new Vec3($r, $g, $b);
return $v;
}
public Vec3 $color;
}
/**
* Draw the tirangle
*/
$context->drawTriangle(
// | position | color
ExampleVertex::c(-0.8, -0.8, 0.0, 1.0, 0.0, 0.0),
ExampleVertex::c( 0.8, -0.8, 0.0, 0.0, 1.0, 0.0),
ExampleVertex::c( 0.0, 0.8, 0.0, 0.0, 0.0, 1.0),
);