Описание тега copperlicht
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>
Полезные ссылки: