Kompleks Səhnələrin 3D Renderinqi üçün Pulsuz PHP Kitabxanası
Açıq mənbəli PHP 3D Renderinq Kitabxanası Proqram Təminatı İnkişaf etdiricilərinə 3D qrafiklər yaratmaq və manipulyasiya etmək, OBJ Faylını pars etmək və müxtəlif teksturalar və materiallar tətbiq etməyə imkan verir.
PHP Render nədir?
Veb inkişafı əhəmiyyətli dərəcədə irəliləmiş, vizual cəlbedici və immersiv təcrübələr yaratmaq üçün davamlı olaraq dəyişir. 3D qrafiklərin renderlənməsi əvvəllər JavaScript və ya C++ kimi dillərin dərin biliyini tələb edən ixtisaslaşmış sistemlərə və ya proqram təminatına məhdudlaşdırılmışdı. Lakin, veb texnologiyasındakı inkişaflar sayəsində, istifadəsi asan və uyğunlaşma qabiliyyəti ilə tanınan PHP dili indi veb tətbiqlərinə 3D renderləmə əlavə etmək üçün istifadə oluna bilər. İnkişafçılar güclü 3D PHP Render kitabxanasının köməyi ilə 3D obyektləri birbaşa PHP‑də yarada və işlədə bilərlər. Proqramçılar güclü və uyğunlaşa bilən 3D PHP Render kitabxanasının köməyi ilə 3D vizuallar yaratmağı və onlarla işləməyi asanlıqla həyata keçirə bilərlər. Onun bir çox üstünlükləri arasında mürəkkəb səhnələr və 3D modellər yaratmaq, animasiyalar yaratmaq, işıqlandırma və kölgələri idarə etmək və müxtəlif tekstür & materialları tətbiq etmək qabiliyyəti var.
3D PHP render kitabxanasının istifadəsinin asanlığı onun ən diqqətəlayiq üstünlüklərindən biridir. Yeni mürəkkəb dilləri və ya çərçivələri öyrənməyə ehtiyac olmadan, PHP ilə tanış olan proqramçılar kitabxananın əsaslarını sürətlə başa düşə və 3D səhnələr yaratmağa başlaya bilərlər. Mövcud PHP çərçivələri və kitabxanaları 3D PHP render kitabxanası ilə asanlıqla inteqrasiya olunur. Bu, sadə API təklif edir və PHP istifadə edən veb tətbiqlərinə inteqrasiya etmək asandır. PHP ilə 3D qrafika arasındakı boşluğu aradan qaldıraraq, bu kitabxana proqramçılara mövcud PHP bilikləri ilə zəngin vizual təcrübələr yaratmağa imkan verir. İnkişafçılar bu kitabxananın funksiyalarından istifadə edərək onlayn tətbiqlərinə vizual cəlbedici 3D elementlər əlavə edə, onları canlandırıb göstərə bilərlər. İstifadə rahatlığı, elastikliyi və performansı ilə bu kitabxana veb təcrübəmizi dəyişdirməyə, 3D qrafiklərin onlayn qarşılıqlı əlaqələrin standart bir xüsusiyyəti olduğu gələcəyə daha da yaxınlaşdırmağa hazırdır.
PHP Render ilə Başlamaq
PHP Render stabil buraxılışını quraşdırmağın ən asan yolu Composer-dən istifadə etməkdir. Sorunsuz quraşdırma üçün aşağıdakı əmri istifadə edin.
Composer vasitəsilə PHP Render quraşdırın
$composer install php-render Siz tərtib olunmuş paylaşılan kitabxananı Github deposundan yükləyə bilərsiniz.
PHP API vasitəsilə 3D Model ilə İşləmək
Açıq mənbəli PHP Render kitabxanası proqram təminatı inkişaf etdiricilərinə PHP tətbiqlərində 3D modellərlə bağlı müxtəlif vəzifələri idarə etməyə imkan verir. Kitabxana dinamik və interaktiv 3D məzmun yaratmağı asanlaşdırır və obyektləri, kameraları və işıqları animasiya etmək üçün əsas kadrlar və keçidlər təyin etməyə imkan verir. Proqram təminatı inkişaf etdiriciləri çoxbucaqlı, sfera, kub və s. daxil olmaqla müxtəlif həndəsi formaları asanlıqla yarada və manipulyasiya edə bilərlər. Onlar vertexləri dəyişdirə, transformasiyalar tətbiq edə və mürəkkəb modellər yaratmaq üçün formaları birləşdirə bilərlər. Aşağıdakı nümunə proqram təminatı inkişaf etdiricilərinin PHP kodu ilə OBJ faylından modeli necə yükləyə biləcəyini göstərir.
PHP API istifadə edərək OBJ fayldan modeli necə yükləmək?
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);
PHP API vasitəsilə 3D Səhnələrin Renderlənməsi
Açıq mənbəli PHP Render kitabxanası proqram inkişaf etdiricilərinə PHP tətbiqlərində müxtəlif növ 3D səhnələri yükləmək və renderləmək üçün asanlıq yaradır. O, kamera idarəetməsi, işıqlandırma və obyekt manipulyasiyası ilə tam təchiz olunmuş 3D səhnələrin renderlənməsi üçün sadələşdirilmiş API təqdim edir. İnkişaf etdiricilər obyektləri təyin edə, onları səhnədə yerləşdirə və onların görünüşünü və davranışını müəyyənləşdirə bilərlər. Bundan əlavə, proqram inkişaf etdiriciləri çoxbucaqlı, sfera, kub və daha çox daxil olmaqla müxtəlif həndəsi formaları yarada və manipulyasiya edə bilərlər.
Daha Yaxşı Məhsul Vizualizasiyası
Pulsuz 3D PHP Render kitabxanası proqram inkişaf etdiricilərinə veb tətbiqlərinə vizual cəlbedici 3D elementləri asanlıqla əlavə etmək imkanı verir. E-ticarət saytları 3D PHP Render kitabxanasından interaktiv məhsul görüntüləri təqdim etmək üçün istifadə edə bilərlər, bu da müştərilərə məhsulları müxtəlif bucaqlardan fırlatmaq, yaxınlaşdırmaq və incələmək imkanı verir. Bu immersiv təcrübə məhsulun anlaşılmasını artırır və müştəri məmnuniyyətini yüksəldir. Aşağıdakı nümunə PHP API istifadə edərək çəkilmiş üçbucağın içində barycentric koordinatların interpolasiyasını nümayiş etdirir.
PHP vasitəsilə çəkilmiş üçbucağın içində barycentric koordinatların interpolasiyasını necə həyata keçirmək?
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),
);