Описание тега copperlicht

CopperLicht - это библиотека /API JavaScript с открытым исходным кодом для создания игр и интерактивных 3D-приложений с использованием WebGL, разработанная Ambiera. Предполагается, что он будет использоваться вместе с его коммерческим редактором 3D-мира CopperCube, но его также можно использовать без него, потеряв возможность напрямую загружать сцену.

CopperLicht - это библиотека /API JavaScript с открытым исходным кодом для создания игр и интерактивных 3D-приложений с использованием WebGL, разработанная Ambiera. Цель библиотеки - предоставить API, упрощающий разработку 3D-контента для Интернета. Предполагается, что он будет использоваться вместе с его коммерческим редактором трехмерного мира CopperCube, но его также можно использовать без него.

Движок был впервые выпущен в феврале 2010 года на демонстрационном веб-сайте, на котором уровень Quake III Arena отображался в реальном времени в окне браузера. Изначально библиотека предназначалась для использования в качестве серверной части WebGL для редактора CopperCube, еще одного творения Amberia, но затем разработчики решили сделать библиотеку бесплатной для использования широкой публикой. В ноябре 2014 года CopperLicht стал бесплатным и открытым исходным кодом на основе лицензии в стиле zlib.

Функции:

Выпуск 1.9 включает следующие функции:

3D-рендеринг на основе иерархического графа сцены.
Предварительно созданные материалы и шейдеры, включая предварительно рассчитанную поддержку карты освещения.
Скелетная анимация.
Встроенное обнаружение столкновений и простой физический движок.
Поддержка динамического освещения.
Система для создания и использования пользовательских шейдеров и материалов на основе языка шейдеров OpenGL (GLSL).
Пути и сплайны
Система поведения и действий
Анимация текстуры
Поддержка цвета вершин
Встроенная система рендеринга 2D-шрифтов и 2D-примитивов Система
автоматического уменьшения перерисовки

Примерный код:

Визуализируйте куб с помощью камеры FPS:

<html>
    <head>
        <title>CopperLicht Hello World</title>
    </head>
    <body>  
        <div align="center">
            <canvas id="3darea" width="640" height="480" style="background-color:#000000">
            </canvas>
        </div>  

        <script type="text/javascript">
            // create the 3d engine
            var engine = new CL3D.CopperLicht('3darea');

            if (engine.initRenderer())
            {
              // add a new 3d scene
              var scene = new CL3D.Scene();
              engine.addScene(scene);

              scene.setBackgroundColor(CL3D.createColor(1, 100, 0, 0));
              scene.setRedrawMode(CL3D.Scene.REDRAW_WHEN_SCENE_CHANGED);

              // add a cube to test out
              var cubenode = new CL3D.CubeSceneNode();
              scene.getRootSceneNode().addChild(cubenode);
              cubenode.getMaterial(0).Tex1 = engine.getTextureManager().getTexture("test.jpg", true);

              // add a user controlled camera with a first person shooter style camera controller
              var cam = new CL3D.CameraSceneNode();
              cam.Pos.X = 20;
              cam.Pos.Y = 15;

              var animator = new CL3D.AnimatorCameraFPS(cam, engine);                              
              cam.addAnimator(animator);                              
              animator.lookAt(new CL3D.Vect3d(0,0,0));         

              scene.getRootSceneNode().addChild(cam);
              scene.setActiveCamera(cam);     
            }
        </script>
    </body>
</html>

Полезные ссылки: