![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| rekodDeveloper |
|
||||||||||||||||||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 2.6.2015 Репутация: нет Всего: нет |
Приветствую! Хочу поделиться с вами небольшим опытом работы с библиотекой, которая мне понравилась в работе с 3D графикой в браузере.
Для начала вот ссылочка на GitHub : GitHub репозиторий; Итак, у нас есть все source файлы, можно их собрать самим, но проще сразу юзать собранную версию, тем более, что она не минифицированна. Разберем простой примерчик. В теле html определяем canvas элемент (на нем то все и будет "держаться"), подключаем библиотеку и исполняемый скрипт. Вот такой получается html:
Теперь беремся за app.js файл. Вызываем событие window.onload и определяем canvas элемент и renderer - объект Gera.Renderer:
Затем определяем некоторые настройки отрисовки (альфа буффер, сглаживание, глубину):
Передаем renderer объекту canvas элемент и ,определенный ранее, webglContext:
Далее создаем объект Gera.Scene и Gera.Camera:
Добавляем на сцену камеру, выбираем ее как "активную":
Теперь создадим простой mesh объект Gera.Mesh() в конструктор нужно передать geometry типа Gera.Geometry и material типа Gera.Material. Заглянув в библиотеку, увидим 5 стандартных типов геометрии и 1 кастомный:
С помощью кастомного типа геометрии можно подгрузить любую триангулированную 3D модель установив путь к файлу этой модели, а с помощью Gera.Texture можно наложить текстуры, прописав путь к ним, но это выходит за рамки данного обзора, так что создадим стандартный кубик и установим ему какой-нибудь цвет:
Теперь у нас есть кубик, которому мы можем задать позицию посредством свойств cubeMesh.position.x, cubeMesh.position.y, cubeMesh.position.z; задать прозрачность cubeMesh.transparency.set(); повернуть cubeMesh.rotate(Gera.Vector3()); постоянно вращать cubeMesh.rotation = new Gera.Rotation(). Вот пример изменения некоторых свойств:
Наконец, чтобы добавить mesh объект на сцену нужно вызвать метод add объектка Gera.Scene.
Передаем сцену объекту Gera.Renderer и даем команду на отрисовку:
Вот и все! Можно открыть страницу и посмотреть на кубик. А на закуску приведу пример кода, который отрисовывает на сцене рандомные фигуры, рандомного цвета и прозрачности:
У вас должна получится подобная картинка: ![]() Как видите, просто нужно создание mesh объекта засунуть в цикл. Нужно заметить, что я специально не стал передавать все типы геометрии, а исключил сферу:
Метод "generateRandomInteger" генерирует целое число от 1 до 4, что соответствует 4 типам геометрии (куб, треугольник, плоскость, пирамида):
Аналогично работает "generateRandomArbitrary( 0.5, 1.0 ) " только без округления до целого: return Math.random() * ( maximum - minimum ) + minimum На этом пока закончу. PS Если у вас возникли проблемы при повторе действий в моем описании, пишите-отвечу, а также, можете глянуть на живой сэмпл: http://amegas.github.io/gera/random.meshes |
||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Применение библиотек | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |