1. produkty
  2.   3D
  3.   PHP
  4.   PHP Render
 
  

Bezplatná PHP knihovna pro 3D renderování složitých scén

Open source PHP 3D knihovna pro renderování umožňuje vývojářům softwaru generovat a manipulovat 3D grafikou, parsovat soubory OBJ a aplikovat různé textury a materiály

Co je PHP Render?

Webový vývoj se výrazně posunul vpřed a neustále se mění, aby vytvářel vizuálně ohromující a pohlcující zážitky. Renderování 3D grafiky bylo dříve omezeno na specializované systémy nebo software, který vyžadoval hluboké znalosti jazyků jako JavaScript nebo C++. Nicméně díky vývoji webových technologií lze nyní PHP – jazyk proslulý svou snadností použití a přizpůsobivostí – použít k zahrnutí 3D renderování do webových aplikací. Vývojáři mohou generovat a pracovat s 3D objekty přímo v PHP pomocí robustní knihovny 3D PHP Render. Programátoři mohou snadno vytvářet a pracovat s 3D vizuály díky výkonné a přizpůsobivé knihovně 3D PHP Render. Mezi její řadu výhod patří schopnost generovat složité scény a 3D modely, vytvářet animace, spravovat osvětlení a stíny a aplikovat různé textury & materiály.

Jednoduchost použití 3D PHP render knihovny je jedním z jejích nejvýznamnějších přínosů. Bez nutnosti učit se složité nové jazyky nebo frameworky mohou vývojáři softwaru, kteří již znají PHP, rychle pochopit základy knihovny a začít vytvářet 3D scény. Existující PHP frameworky a knihovny jsou jednoduše integrovány s 3D PHP render knihovnou. Nabízí jednoduché API a je snadno začlenitelná do webových aplikací používajících PHP. Překlenutím mezery mezi PHP a 3D grafikou tato knihovna umožňuje vývojářům vytvářet bohaté vizuální zážitky pomocí jejich stávajících znalostí PHP. Vývojáři mohou využít funkce této knihovny k přidání vizuálně atraktivních 3D prvků do svých online aplikací, čímž je oživí. Díky své jednoduchosti, flexibilitě a výkonu je tato knihovna připravena transformovat způsob, jakým zažíváme web, a přiblížit nás k budoucnosti, kde jsou 3D grafiky standardní součástí online interakcí.

Previous Next

Začínáme s PHP Render

Nejjednodušší způsob, jak nainstalovat stabilní verzi PHP Render, je pomocí Composeru. Použijte prosím následující příkaz pro hladkou instalaci.

Instalace PHP Render pomocí Composeru

$composer install php-render 

Můžete stáhnout zkompilovanou sdílenou knihovnu z repozitáře Github.

Práce s 3D modelem přes PHP API

Otevřená knihovna PHP Render umožňuje vývojářům softwaru řešit různé úkoly související s 3D modely v PHP aplikacích. Knihovna usnadňuje vytváření dynamického a interaktivního 3D obsahu a umožňuje definovat klíčové snímky a přechody pro animaci objektů, kamer a světel. Vývojáři mohou snadno generovat a manipulovat s různými geometrickými tvary, včetně polygonů, koulí, krychlí a dalších. Mohou upravovat vrcholy, aplikovat transformace a kombinovat tvary k vytvoření složitých modelů. Následující příklad ukazuje, jak mohou vývojáři načíst model z OBJ souboru pomocí PHP kódu.

Jak načíst model z OBJ souboru pomocí 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);

Renderování 3D scén přes PHP API

Open source knihovna PHP Render usnadňuje vývojářům softwaru načítat a renderovat různé typy 3D scén ve svých PHP aplikacích. Poskytuje zjednodušené API pro renderování 3D scén, včetně ovládání kamery, osvětlení a manipulace s objekty. Vývojáři mohou definovat objekty, umístit je ve scéně a specifikovat jejich vzhled a chování. Navíc mohou vývojáři generovat a manipulovat s různými geometrickými tvary, včetně polygonů, koulí, krychlí a dalších.

Lepší vizualizace produktů

Bezplatná knihovna 3D PHP Render umožňuje vývojářům softwaru snadno přidávat vizuálně ohromující 3D prvky do svých webových aplikací. E‑commerce weby mohou využít knihovnu 3D PHP Render k nabídce interaktivních zobrazení produktů, které zákazníkům umožňují otáčet, přibližovat a zkoumat produkty z různých úhlů. Tento pohlcující zážitek zlepšuje pochopení produktu a zvyšuje spokojenost zákazníků. Následující příklad ukazuje interpolaci barycentrických souřadnic uvnitř nakresleného trojúhelníku pomocí PHP API.

Jak provést interpolaci barycentrických souřadnic uvnitř nakresleného trojúhelníku pomocí 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),
);
 Čeština