Kostenlose PHP‑Bibliothek für das 3D‑Rendering komplexer Szenen
Open-Source PHP 3D‑Rendering‑Bibliothek ermöglicht Software‑Entwicklern das Erzeugen & Manipulieren von 3D‑Grafiken, das Parsen von OBJ‑Dateien und das Anwenden verschiedener Texturen & Materialien
Was ist PHP Render?
Die Webentwicklung hat sich erheblich weiterentwickelt und verändert sich ständig, um visuell beeindruckende und immersive Erlebnisse zu schaffen. Das Rendern von 3D-Grafiken war früher auf spezialisierte Systeme oder Software beschränkt, die ein tiefes Verständnis von Sprachen wie JavaScript oder C++ erforderte. Dank der Fortschritte in der Webtechnologie kann PHP – eine für ihre Benutzerfreundlichkeit und Anpassungsfähigkeit bekannte Sprache – nun zur Einbindung von 3D-Rendering in Webanwendungen verwendet werden. Entwickler können mit Hilfe der robusten 3D PHP Render-Bibliothek 3D-Objekte direkt in PHP erzeugen und bearbeiten. Programmierer können dank der leistungsstarken und flexiblen 3D PHP Render-Bibliothek leicht 3D-Visualisierungen erstellen und bearbeiten. Zu den vielen Vorteilen gehören die Möglichkeit, komplexe Szenen und 3D-Modelle zu erzeugen, Animationen zu erstellen, Beleuchtung und Schatten zu steuern sowie verschiedene Texturen und Materialien anzuwenden.
Die Benutzerfreundlichkeit einer 3D-PHP-Render-Bibliothek ist einer ihrer bemerkenswertesten Vorteile. Ohne komplizierte neue Sprachen oder Frameworks erlernen zu müssen, können Softwareentwickler, die bereits mit PHP vertraut sind, die Grundlagen der Bibliothek schnell verstehen und mit der Erstellung von 3D‑Szenerien beginnen. Bestehende PHP-Frameworks und -Bibliotheken lassen sich einfach in die 3D-PHP-Render-Bibliothek integrieren. Sie bietet eine einfache API und lässt sich leicht in Webanwendungen, die PHP verwenden, einbinden. Indem sie die Lücke zwischen PHP und 3D-Grafik schließt, ermöglicht diese Bibliothek Softwareentwicklern, dank ihrer vorhandenen PHP‑Kompetenz reichhaltige visuelle Erlebnisse zu schaffen. Entwickler können die Funktionen dieser Bibliothek nutzen, um ansprechende 3D‑Elemente zu ihren Online‑Apps hinzuzufügen und sie zum Leben zu erwecken. Mit ihrer Benutzerfreundlichkeit, Flexibilität und Leistung ist diese Bibliothek bereit, die Art und Weise, wie wir das Web erleben, zu verändern und uns einer Zukunft näherzubringen, in der 3D‑Grafiken ein Standardmerkmal von Online‑Interaktionen sind.
Erste Schritte mit PHP Render
Der einfachste Weg, die stabile Version von PHP Render zu installieren, ist die Verwendung von Composer. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.
PHP Render über Composer installieren
$composer install php-render Sie können die kompilierte Shared Library aus dem Github-Repository herunterladen.
Arbeiten mit 3D-Modell über die PHP-API
Die Open-Source-Bibliothek PHP Render ermöglicht es Softwareentwicklern, verschiedene Aufgaben im Zusammenhang mit 3D-Modellen in PHP-Anwendungen zu bearbeiten. Die Bibliothek erleichtert das Erstellen von dynamischen & interaktiven 3D-Inhalten und kann Keyframes und Übergänge definieren, um Objekte, Kameras und Lichter zu animieren. Softwareentwickler können leicht verschiedene geometrische Formen erzeugen und manipulieren, einschließlich Polygonen, Kugeln, Würfeln und mehr. Sie können Scheitelpunkte ändern, Transformationen anwenden und Formen kombinieren, um komplexe Modelle zu erstellen. Das folgende Beispiel zeigt, wie Softwareentwickler ein Modell aus einer OBJ-Datei mit PHP-Code laden können.
Wie man ein Modell aus einer OBJ-Datei mit der PHP-API lädt?
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 von 3D-Szenen über die PHP-API
Die Open-Source-PHP-Render-Bibliothek erleichtert Softwareentwicklern das Laden und Rendern verschiedener Arten von 3D‑Szenen in ihren PHP‑Anwendungen. Sie bietet eine schlanke API zum Rendern von 3D‑Szenen, komplett mit Kamerasteuerung, Beleuchtung und Objektmanipulation. Entwickler können Objekte definieren, sie innerhalb der Szene positionieren und ihr Aussehen sowie Verhalten festlegen. Darüber hinaus können Softwareentwickler verschiedene geometrische Formen erzeugen und manipulieren, darunter Polygone, Kugeln, Würfel und mehr.
Bessere Produktvisualisierung
Die kostenlose 3D‑PHP‑Render‑Bibliothek ermöglicht es Softwareentwicklern, mühelos visuell beeindruckende 3D‑Elemente zu ihren Webanwendungen hinzuzufügen. E‑Commerce-Websites können die 3D‑PHP‑Render‑Bibliothek nutzen, um interaktive Produktansichten anzubieten, bei denen Kunden Produkte drehen, zoomen und aus verschiedenen Blickwinkeln untersuchen können. Dieses immersive Erlebnis verbessert das Produktverständnis und steigert die Kundenzufriedenheit. Das folgende Beispiel demonstriert die Interpolation der baryzentrischen Koordinaten innerhalb eines gezeichneten Dreiecks mithilfe der PHP‑API.
Wie führt man die Interpolation baryzentrischer Koordinaten innerhalb eines gezeichneten Dreiecks mit PHP durch?
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),
);