Gratis PHP Bibliotheek voor 3D Rendering van Complexe Scènes
Open Source PHP 3D Rendering Bibliotheek stelt softwareontwikkelaars in staat om 3D-graphics te genereren & te manipuleren, OBJ-bestandsparsing en verschillende texturen & materialen toe te passen
Wat is PHP Render?
Webontwikkeling is aanzienlijk gevorderd en verandert voortdurend om visueel verbluffende en meeslepende ervaringen te produceren. Het renderen van 3D-graphics was vroeger beperkt tot gespecialiseerde systemen of software die een diepgaande kennis van talen zoals JavaScript of C++ vereiste. Dankzij ontwikkelingen in webtechnologie kan PHP—een taal die bekend staat om zijn gebruiksgemak en aanpasbaarheid—nu echter worden gebruikt om 3D-rendering in webapplicaties op te nemen. Ontwikkelaars kunnen met behulp van de robuuste 3D PHP Render-bibliotheek direct in PHP 3D-objecten genereren en ermee werken. Programmeurs kunnen met behulp van de krachtige en flexibele 3D PHP Render-bibliotheek eenvoudig 3D-visuals creëren en ermee werken. Een van de vele voordelen is het vermogen om ingewikkelde scènes en 3D-modellen te genereren, animaties te maken, verlichting en schaduwen te beheren, en verschillende texturen en materialen toe te passen.
Het gebruiksgemak van een 3D PHP renderbibliotheek is een van de meest opvallende voordelen. Zonder dat men ingewikkelde nieuwe talen of frameworks hoeft te leren, kunnen softwareontwikkelaars die al bekend zijn met PHP snel de basisprincipes van de bibliotheek begrijpen en beginnen met het maken van 3D-scènes. Bestaande PHP-frameworks en -bibliotheken kunnen eenvoudig worden geïntegreerd met de 3D PHP renderbibliotheek. Het biedt een eenvoudige API en is eenvoudig te integreren in webapplicaties die PHP gebruiken. Door de kloof tussen PHP en 3D-graphics te overbruggen, stelt deze bibliotheek softwareontwikkelaars in staat om rijke visuele ervaringen te creëren met hun bestaande PHP-expertise. Ontwikkelaars kunnen de functies van deze bibliotheek gebruiken om visueel aantrekkelijke 3D-elementen toe te voegen aan hun online apps, waardoor ze tot leven komen. Met zijn gebruiksgemak, flexibiliteit en prestaties staat deze bibliotheek klaar om te transformeren hoe we het web ervaren, en brengt ons dichter bij een toekomst waarin 3D-graphics een standaardfunctie zijn van online interacties.
Aan de slag met PHP Render
De eenvoudigste manier om de stabiele release van PHP Render te installeren is via Composer. Gebruik alstublieft het volgende commando voor een soepele installatie.
Installeer PHP Render via Composer
$composer install php-render U kunt de gecompileerde gedeelde bibliotheek downloaden van Github repository.
Werken met 3D-model via PHP API
De open source PHP Render bibliotheek stelt softwareontwikkelaars in staat om verschillende taken met betrekking tot 3D-modellen binnen PHP-toepassingen af te handelen. De bibliotheek maakt het eenvoudig om dynamische & interactieve 3D-inhoud te creëren en kan keyframes en overgangen definiëren om objecten, camera's en verlichting te animeren. Softwareontwikkelaars kunnen gemakkelijk diverse geometrische vormen genereren en manipuleren, waaronder polygonen, sferen, kubussen en meer. Ze kunnen vertices aanpassen, transformaties toepassen en vormen combineren om complexe modellen te maken. Het volgende voorbeeld toont hoe softwareontwikkelaars een model uit een OBJ-bestand kunnen laden met PHP-code.
Hoe een model laden vanuit een OBJ-bestand met de PHP API?
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);
Renderen van 3D-scènes via PHP API
De open source PHP Render-bibliotheek maakt het voor softwareontwikkelaars eenvoudig om verschillende soorten 3D-scènes te laden en te renderen binnen hun PHP-toepassingen. Het biedt een gestroomlijnde API voor het renderen van 3D-scènes, compleet met camerabediening, verlichting en objectmanipulatie. Ontwikkelaars kunnen objecten definiëren, ze positioneren binnen de scène en hun uiterlijk en gedrag specificeren. Bovendien kunnen softwareontwikkelaars diverse geometrische vormen genereren en manipuleren, waaronder polygonen, sferen, kubussen en meer.
Betere productvisualisatie
De gratis 3D PHP Render-bibliotheek stelt softwareontwikkelaars in staat om moeiteloos visueel verbluffende 3D-elementen aan hun webapplicaties toe te voegen. E-commercewebsites kunnen de 3D PHP Render-bibliotheek gebruiken om interactieve productweergaven te bieden, waardoor klanten producten kunnen roteren, inzoomen en vanuit verschillende hoeken kunnen bekijken. Deze meeslepende ervaring verbetert het productbegrip en verhoogt de klanttevredenheid. Het volgende voorbeeld toont de interpolatie van de barycentrische coördinaten binnen een getekende driehoek met behulp van de PHP API.
Hoe interpolatie van barycentrische coördinaten binnen een getekende driehoek uitvoeren via 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),
);