Perpustakaan PHP Gratis untuk Rendering 3D Adegan Kompleks
Perpustakaan Rendering 3D PHP Sumber Terbuka memungkinkan Pengembang Perangkat Lunak untuk menghasilkan & memanipulasi grafik 3D, parsing File OBJ dan menerapkan berbagai tekstur & material
Apa itu PHP Render?
Pengembangan web telah berkembang pesat, terus berubah untuk menghasilkan pengalaman visual yang menakjubkan dan imersif. Rendering grafik 3D sebelumnya terbatas pada sistem atau perangkat lunak khusus yang memerlukan pemahaman mendalam tentang bahasa seperti JavaScript atau C++. Namun, berkat perkembangan teknologi web, PHP—sebuah bahasa yang terkenal karena kemudahan penggunaan dan fleksibilitasnya—sekarang dapat digunakan untuk menyertakan rendering 3D ke dalam aplikasi web. Pengembang dapat menghasilkan dan bekerja dengan objek 3D secara langsung di PHP dengan bantuan perpustakaan 3D PHP Render yang kuat. Programmer dapat dengan mudah membuat dan bekerja dengan visual 3D dengan bantuan perpustakaan 3D PHP Render yang kuat dan dapat disesuaikan. Di antara banyak keuntungannya adalah kemampuan untuk menghasilkan adegan dan model 3D yang rumit, membuat animasi, mengelola pencahayaan, dan bayangan, serta menerapkan berbagai tekstur & material.
Kemudahan penggunaan perpustakaan render 3D PHP adalah salah satu manfaat paling menonjolnya. Tanpa harus mempelajari bahasa atau kerangka kerja baru yang rumit, pengembang perangkat lunak yang sudah familiar dengan PHP dapat dengan cepat memahami dasar-dasar perpustakaan ini dan mulai membuat skenario 3D. Kerangka kerja dan perpustakaan PHP yang ada dapat dengan mudah diintegrasikan dengan perpustakaan render 3D PHP. Ia menawarkan API yang sederhana dan mudah diintegrasikan ke dalam aplikasi web yang menggunakan PHP. Dengan menjembatani kesenjangan antara PHP dan grafis 3D, perpustakaan ini memungkinkan pengembang perangkat lunak menciptakan pengalaman visual yang kaya menggunakan keahlian PHP mereka yang sudah ada. Pengembang dapat menggunakan fitur-fitur perpustakaan ini untuk menambahkan elemen 3D yang menarik secara visual ke aplikasi daring mereka, membuatnya menjadi hidup. Dengan kemudahan penggunaan, fleksibilitas, dan kinerjanya, perpustakaan ini siap mengubah cara kita mengalami web, membawa kita lebih dekat ke masa depan di mana grafis 3D menjadi fitur standar dalam interaksi daring.
Memulai dengan PHP Render
Cara termudah untuk menginstal rilis stabil PHP Render adalah menggunakan Composer. Silakan gunakan perintah berikut untuk instalasi yang lancar.
Instal PHP Render melalui Composer
$composer install php-render Anda dapat mengunduh pustaka berbagi yang telah dikompilasi dari repositori Github.
Bekerja dengan Model 3D melalui API PHP
Pustaka open source PHP Render memungkinkan pengembang perangkat lunak menangani berbagai tugas terkait model 3D di dalam aplikasi PHP. Pustaka ini memudahkan pembuatan konten 3D yang dinamis & interaktif serta dapat mendefinisikan keyframe dan transisi untuk menganimasikan objek, kamera, dan cahaya. Pengembang perangkat lunak dapat dengan mudah menghasilkan dan memanipulasi berbagai bentuk geometris, termasuk poligon, bola, kubus, dan lainnya. Mereka dapat memodifikasi vertex, menerapkan transformasi, dan menggabungkan bentuk untuk membuat model yang kompleks. Contoh berikut menunjukkan bagaimana pengembang perangkat lunak dapat memuat model dari file OBJ menggunakan kode PHP.
Cara Memuat Model dari File 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 pengembang perangkat lunak untuk memuat dan merender berbagai jenis adegan 3D di dalam aplikasi PHP mereka. Ini menyediakan API yang disederhanakan untuk merender adegan 3D, lengkap dengan kontrol kamera, pencahayaan, dan manipulasi objek. Pengembang dapat mendefinisikan objek, menempatkannya dalam adegan, dan menentukan penampilan serta perilakunya. Selain itu, pengembang perangkat lunak dapat menghasilkan dan memanipulasi berbagai bentuk geometris, termasuk poligon, bola, kubus, dan lainnya.
Visualisasi Produk yang Lebih Baik
Perpustakaan 3D PHP Render gratis memungkinkan pengembang perangkat lunak menambahkan elemen 3D yang memukau secara visual ke aplikasi web mereka dengan mudah. Situs e‑commerce dapat memanfaatkan perpustakaan 3D PHP Render untuk menawarkan tampilan produk interaktif, memungkinkan pelanggan memutar, memperbesar, dan memeriksa produk dari berbagai sudut. Pengalaman imersif ini meningkatkan pemahaman produk dan meningkatkan kepuasan pelanggan. Contoh berikut menunjukkan interpolasi koordinat barycentric di dalam segitiga yang digambar menggunakan API PHP.
Cara Melakukan Interpolasi Koordinat Barycentric di dalam Segitiga yang Digambar menggunakan 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),
);