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

Gratis PHP-bibliotek for 3D-rendering av komplekse scener

Åpen kildekode PHP 3D-renderingsbibliotek gjør det mulig for programvareutviklere å generere og manipulere 3D‑grafikk, OBJ‑filparsing og anvende ulike teksturer og materialer

Hva er PHP Render?

Webutvikling har utviklet seg betydelig, og endrer seg kontinuerlig for å skape visuelt imponerende og oppslukende opplevelser. Rendering av 3D-grafikk var tidligere begrenset til spesialiserte systemer eller programvare som krevde dyp forståelse av språk som JavaScript eller C++. Men takket være utviklingen innen webteknologi, kan PHP – et språk kjent for sin brukervennlighet og tilpasningsdyktighet – nå brukes til å inkludere 3D-rendering i webapplikasjoner. Utviklere kan generere og arbeide med 3D-objekter direkte i PHP ved hjelp av det robuste 3D PHP Render-biblioteket. Programmerere kan enkelt lage og arbeide med 3D-visualer ved hjelp av det kraftige og tilpasningsdyktige 3D PHP Render-biblioteket. Blant mange fordeler er muligheten til å generere intrikate scener og 3D-modeller, lage animasjoner, håndtere belysning og skygger, samt anvende ulike teksturer & materialer.

Den enkle bruken av et 3D PHP-renderingsbibliotek er en av dets mest bemerkelsesverdige fordeler. Uten å måtte lære kompliserte nye språk eller rammeverk, kan programvareutviklere som allerede er kjent med PHP raskt forstå bibliotekets grunnleggende prinsipper og begynne å lage 3D-landskap. Eksisterende PHP-rammeverk og -biblioteker integreres enkelt med 3D PHP-renderingsbiblioteket. Det tilbyr et enkelt API og er lett å integrere i webapplikasjoner som bruker PHP. Ved å bygge bro mellom PHP og 3D-grafikk gjør dette biblioteket det mulig for utviklere å skape rike visuelle opplevelser ved hjelp av sin eksisterende PHP-kompetanse. Utviklere kan bruke bibliotekets funksjoner til å legge til visuelt tiltalende 3D-elementer i sine nettapper, og få dem til å komme til liv. Med sin brukervennlighet, fleksibilitet og ytelse er dette biblioteket klar til å transformere hvordan vi opplever nettet, og bringer oss nærmere en fremtid hvor 3D-grafikk er en standardfunksjon i nettinteraksjoner.

Previous Next

Kom i gang med PHP Render

Den enkleste måten å installere PHP Render stabil versjon på er ved å bruke Composer. Vennligst bruk følgende kommando for en smidig installasjon.

Installer PHP Render via Composer

$composer install php-render 

Du kan laste ned det kompilerte delte biblioteket fra Github-repoet.

Arbeid med 3D-modell via PHP API

Det åpne kildekodebiblioteket PHP Render gjør det mulig for programvareutviklere å håndtere ulike oppgaver knyttet til 3D-modeller i PHP-applikasjoner. Biblioteket gjør det enkelt å lage dynamisk og interaktivt 3D-innhold, og kan definere nøkkelrammer og overganger for å animere objekter, kameraer og lys. Programvareutviklere kan enkelt generere og manipulere ulike geometriske former, inkludert polygoner, kuler, kuber og mer. De kan endre hjørnepunkter, anvende transformasjoner og kombinere former for å lage komplekse modeller. Følgende eksempel viser hvordan programvareutviklere kan laste inn en modell fra en OBJ-fil ved hjelp av PHP-kode.

Hvordan laste inn modell fra en OBJ-fil ved hjelp av 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);

Rendering av 3D-scener via PHP API

Det åpne kildekode PHP Render-biblioteket gjør det enkelt for programvareutviklere å laste inn og gjengi ulike typer 3D-scener i sine PHP-applikasjoner. Det tilbyr et strømlinjeformet API for rendering av 3D-scener, komplett med kamerakontroller, belysning og objektmanipulering. Utviklere kan definere objekter, plassere dem i scenen, og spesifisere deres utseende og oppførsel. Videre kan programvareutviklere generere og manipulere ulike geometriske former, inkludert polygoner, sfærer, kuber og mer.

Bedre produktvisualisering

Det gratis 3D PHP Render-biblioteket gir programvareutviklere muligheten til enkelt å legge til visuelt imponerende 3D-elementer i sine nettapplikasjoner. Netthandelsnettsteder kan bruke 3D PHP Render-biblioteket for å tilby interaktive produktvisninger, som lar kundene rotere, zoome og undersøke produkter fra ulike vinkler. Den immersive opplevelsen forbedrer produktforståelsen og øker kundetilfredsheten. Følgende eksempel demonstrerer interpolasjonen av de barysentriske koordinatene inne i en tegnet trekant ved bruk av PHP API.

Hvordan utføre interpolasjon av barysentriske koordinater inne i en tegnet trekant 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),
);
 Norsk