1. Товары
  2.   3D
  3.   PHP
  4.   PHP Render
 
  

Бесплатная PHP-библиотека для 3D-рендеринга сложных сцен

Открытая PHP-библиотека для 3D-рендеринга позволяет разработчикам программного обеспечения создавать и манипулировать 3D-графикой, разбирать OBJ-файлы и применять различные текстуры и материалы

Что такое PHP Render?

Веб‑разработка значительно продвинулась, постоянно меняясь, чтобы создавать визуально впечатляющие и захватывающие впечатления. Рендеринг 3D‑графики ранее был ограничен специализированными системами или программным обеспечением, требующим глубоких знаний языков, таких как JavaScript или C++. Однако благодаря развитию веб‑технологий PHP — язык, известный своей простотой использования и адаптивностью — теперь может использоваться для включения 3D‑рендеринга в веб‑приложения. Разработчики могут генерировать и работать с 3D‑объектами непосредственно в PHP с помощью мощной библиотеки 3D PHP Render. Программисты могут легко создавать и работать с 3D‑визуализацией благодаря мощной и гибкой библиотеке 3D PHP Render. Среди её многочисленных преимуществ — возможность генерировать сложные сцены и 3D‑модели, создавать анимацию, управлять освещением и тенями, а также применять различные текстуры и материалы.

Лёгкость использования 3D PHP библиотеки рендеринга является одним из её самых заметных преимуществ. Не нужно изучать сложные новые языки или фреймворки, разработчики, уже знакомые с PHP, могут быстро понять основы библиотеки и начать создавать 3D сцены. Существующие PHP‑фреймворки и библиотеки просто интегрируются с 3D PHP библиотекой рендеринга. Она предлагает простой API и легко интегрируется в веб‑приложения, использующие PHP. Сокращая разрыв между PHP и 3D‑графикой, эта библиотека позволяет разработчикам создавать богатый визуальный опыт, используя свои текущие знания PHP. Разработчики могут использовать возможности библиотеки для добавления визуально привлекательных 3D‑элементов в свои онлайн‑приложения, оживляя их. Благодаря простоте использования, гибкости и производительности, эта библиотека готова изменить то, как мы воспринимаем веб, приближая нас к будущему, где 3D‑графика станет стандартной функцией онлайн‑взаимодействий.

Previous Next

Начало работы с PHP Render

Самый простой способ установить стабильную версию PHP Render — использовать Composer. Пожалуйста, используйте следующую команду для беспроблемной установки.

Установите PHP Render через Composer

$composer install php-render 

Вы можете скачать скомпилированную общую библиотеку из репозитория Github.

Работа с 3D‑моделью через PHP API

Библиотека с открытым исходным кодом PHP Render позволяет разработчикам программного обеспечения выполнять различные задачи, связанные с 3D‑моделями в PHP‑приложениях. Библиотека упрощает создание динамического и интерактивного 3D‑контента и позволяет задавать ключевые кадры и переходы для анимации объектов, камер и источников света. Разработчики могут легко генерировать и манипулировать различными геометрическими формами, включая полигоны, сферы, кубы и многое другое. Они могут изменять вершины, применять трансформации и комбинировать формы для создания сложных моделей. Ниже приведён пример, показывающий, как разработчики могут загрузить модель из OBJ‑файла с помощью кода PHP.

Как загрузить модель из OBJ‑файла с помощью 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);

Рендеринг 3D‑сцен через PHP API

Библиотека с открытым исходным кодом PHP Render упрощает разработчикам программного обеспечения загрузку и рендеринг различных типов 3D‑сцен в их PHP‑приложениях. Она предоставляет упрощённый API для рендеринга 3D‑сцен, включающий управление камерой, освещение и манипуляцию объектами. Разработчики могут определять объекты, размещать их в сцене и задавать их внешний вид и поведение. Кроме того, разработчики могут генерировать и управлять различными геометрическими формами, включая многоугольники, сферы, кубы и многое другое.

Лучшее визуальное представление продукта

Бесплатная библиотека 3D PHP Render позволяет разработчикам программного обеспечения без усилий добавлять визуально впечатляющие 3D‑элементы в свои веб‑приложения. Интернет‑магазины могут использовать библиотеку 3D PHP Render для предоставления интерактивных просмотров товаров, позволяя клиентам вращать, масштабировать и осматривать продукты под разными углами. Этот погружающий опыт улучшает понимание продукта и повышает удовлетворённость клиентов. Ниже приведён пример, демонстрирующий интерполяцию барицентрических координат внутри нарисованного треугольника с использованием PHP‑API.

Как выполнить интерполяцию барицентрических координат внутри нарисованного треугольника с помощью 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),
);
 Русский