Biblioteca PHP gratuita para renderizado 3D de escenas complejas
Biblioteca de renderizado 3D en PHP de código abierto permite a los desarrolladores de software generar y manipular gráficos 3D, analizar archivos OBJ y aplicar diversas texturas y materiales
¿Qué es PHP Render?
El desarrollo web ha avanzado significativamente, cambiando continuamente para producir experiencias visualmente impresionantes e inmersivas. Renderizar gráficos 3D estaba anteriormente restringido a sistemas o software especializados que requerían un profundo conocimiento de lenguajes como JavaScript o C++. Sin embargo, gracias a los avances en la tecnología web, PHP —un lenguaje reconocido por su facilidad de uso y adaptabilidad— ahora puede usarse para incluir renderizado 3D en aplicaciones web. Los desarrolladores pueden generar y trabajar con objetos 3D directamente en PHP con la ayuda de la robusta biblioteca 3D PHP Render. Los programadores pueden crear y trabajar fácilmente con visuales 3D gracias a la poderosa y adaptable biblioteca 3D PHP Render. Entre sus muchas ventajas se encuentran la capacidad de generar escenas y modelos 3D intrincados, crear animaciones, gestionar iluminación y sombras, y aplicar diversas texturas y materiales.
La facilidad de uso de una biblioteca de renderizado 3D para PHP es uno de sus beneficios más notables. Sin necesidad de aprender lenguajes o frameworks nuevos y complicados, los desarrolladores de software que ya están familiarizados con PHP pueden comprender rápidamente los fundamentos de la biblioteca y comenzar a crear escenarios 3D. Los frameworks y bibliotecas PHP existentes se integran fácilmente con la biblioteca de renderizado 3D para PHP. Ofrece una API sencilla y es fácil de integrar en aplicaciones web que usan PHP. Al cerrar la brecha entre PHP y los gráficos 3D, esta biblioteca permite a los desarrolladores crear experiencias visuales ricas utilizando su experiencia existente en PHP. Los desarrolladores pueden usar las funciones de esta biblioteca para añadir elementos 3D visualmente atractivos a sus aplicaciones en línea, dándoles vida. Con su facilidad de uso, flexibilidad y rendimiento, esta biblioteca está preparada para transformar la forma en que experimentamos la web, acercándonos a un futuro donde los gráficos 3D sean una característica estándar de las interacciones en línea.
Comenzando con PHP Render
La forma más fácil de instalar la versión estable de PHP Render es usando Composer. Por favor, use el siguiente comando para una instalación sin problemas.
Instalar PHP Render mediante Composer
$composer install php-render Puede descargar la biblioteca compartida compilada desde el repositorio Github.
Trabajar con modelo 3D a través de la API PHP
La biblioteca de código abierto PHP Render permite a los desarrolladores de software manejar diversas tareas relacionadas con modelos 3D dentro de aplicaciones PHP. La biblioteca facilita la creación de contenido 3D dinámico e interactivo y puede definir fotogramas clave y transiciones para animar objetos, cámaras y luces. Los desarrolladores pueden generar y manipular fácilmente varias formas geométricas, incluidas polígonos, esferas, cubos y más. Pueden modificar vértices, aplicar transformaciones y combinar formas para crear modelos complejos. El siguiente ejemplo muestra cómo los desarrolladores pueden cargar un modelo desde un archivo OBJ usando código PHP.
¿Cómo cargar un modelo desde un archivo OBJ usando la API de 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);
Renderizado de escenas 3D a través de la API PHP
La biblioteca de renderizado PHP de código abierto facilita a los desarrolladores de software cargar y renderizar varios tipos de escenas 3D dentro de sus aplicaciones PHP. Proporciona una API simplificada para renderizar escenas 3D, completa con controles de cámara, iluminación y manipulación de objetos. Los desarrolladores pueden definir objetos, posicionarlos dentro de la escena y especificar su apariencia y comportamiento. Además, los desarrolladores de software pueden generar y manipular diversas formas geométricas, incluidos polígonos, esferas, cubos y más.
Mejor visualización de productos
La biblioteca gratuita 3D PHP Render permite a los desarrolladores de software añadir elementos 3D visualmente impresionantes a sus aplicaciones web sin esfuerzo. Los sitios web de comercio electrónico pueden utilizar la biblioteca 3D PHP Render para ofrecer vistas interactivas de productos, permitiendo a los clientes rotar, hacer zoom y examinar los productos desde diferentes ángulos. Esta experiencia inmersiva mejora la comprensión del producto y aumenta la satisfacción del cliente. El siguiente ejemplo demuestra la interpolación de las coordenadas baricéntricas dentro de un triángulo dibujado usando la API de PHP.
¿Cómo realizar la interpolación de coordenadas baricéntricas dentro de un triángulo dibujado mediante 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),
);