VR
28 марта 2017 11:07
работает без контроллеров
Собираемся добавить поддержку к следующему релизу.
сама картинка кубика менее четкая
Действительно, при включенном WebGL 2.0 присутствует баг. Для исправления необходимо добавить две строки
slink_left_copy.min_filter = m_tex.TF_LINEAR;
slink_left_copy.mag_filter = m_tex.TF_LINEAR;
на этой строке
https://github.com/TriumphLLC/Blend4Web/blob/master/src/scenegraph.js#L2159
сужу по аналогам на a-frame и three.js
Скиньте пожайлуста ссылку, чтобы мы могли сравнить.
вокруг него не обойдешь сколько не ходи
Для перемещения камеры в соответствие с положением шлема VR сейчас можно использовать сенсор. К следующему релизу постараемся упростить этот момент.
Команда Blend4Web
kirill@blend4web.com
kirill@blend4web.com
31 марта 2017 06:36
Скиньте пожайлуста ссылку, чтобы мы могли сравнить.
Насчет примеров, посмотрите пожалуйста https://webvr.info/samples/
Там на HTC работает все, причем демка с кубиками очень показательная, потому через браузер вокруг тебя возникает объемное, полностью соответствующее stand-alone приложениям из стима окружение. Js код там приведен и, насколько я понимаю, исходники методов тоже имеются. Так же имеются примеры работы с контроллерами и т.д. Это в части того, что точно абсолютно корректно работает на htc, без каких-либо дополнительных настроек.
И если в стиме вам надо чего-то грузить, качать и устанавливать, то здесь только надо кнопку нажать, почему я и поднял тему. У sketchfab уже есть поддержка vr на сайте. Мне кажется, что надо срочно реализовывать поддержку, потому что b4w в отличие от unreal не требует исполняемого файла, в отличии от unity можно применять для схожих приложений один и тот же код, а со stand-alone можно даже не сравнивать. Если это будет пускай даже 20-30 строчек кода и возможно будет ходить персонажем по моделям, то это рывок вперед, потому что люди сидят, чего-то рисуют, берут за это кучу денег, а мы импортируем, запускаем скрипты, потом экспортируем и получаем результат через три часа. Вот и вся работа. Нужен полноценный VR.
Алексей
31 марта 2017 16:43
12 апреля 2017 01:27
Коллеги, добрый вечер,
Докладываю. Только что на threejs.org тестил dragging из раздела VR на HTC - 338 строчек кода с пропусками и комментариями - итого не больше 200, из которых две трети это геометрия, рендер и html. В итоге отличная картинка, полноценные трехмерные пульты в руках с лучами и перенос всех объектов в демке ровно как в приложениях из стима. Следующее приложение позволяет рисовать трехмерную колбасу с подбором цветов.
Конечно можно сказать что мол, дружище, юзай three.js, никто не запрещает. Это верно. Но можно и объективно посмотреть на вещи: мы сегодня высыпаемся в вагоне, выходя покурить на каждом полустанке, пока мимо нас проезжают другие в renfe со скоростью 300 км/час. Если человек решил жить нодовой логикой и не лезет в js - это тоже его выбор - не сделали нужную ноду - сиди жди или лезь в js. А если лезет? Тем более, что все API на js…
То есть сидишь ты в блендере, рисуешь трехмерку и вот, появляется возможность показать ее в браузере - хорошо, интересно. Пользуешься вьювером без кодинга и скидываешь заказчикам ссылки? Ок.
Это получается тА черта, заходя за которую ты сразу начинаешь задумываться о перескоке на другие рельсы? Не жалко будет, если народ азбуку выучит на примере как сделать кнопку и включить прозрачность, а потом полноценно уйдет в кодинг чтобы иметь возможность делать сочняк в условиях конкурентного рынка на базе кучи исходников, экспортируя json и анимацию из того же блендера или будет напрямую загружать модели?
Это не критика. Можете сами проверить и сделать свои выводы. Еще хуже будет если народ начнет экспортировать ресурсы, пользуясь бесплатными скриптами, а потом экспортировать другой json и использовать обертку из см.выше. Бизнесу от этого лучше не будет…
Докладываю. Только что на threejs.org тестил dragging из раздела VR на HTC - 338 строчек кода с пропусками и комментариями - итого не больше 200, из которых две трети это геометрия, рендер и html. В итоге отличная картинка, полноценные трехмерные пульты в руках с лучами и перенос всех объектов в демке ровно как в приложениях из стима. Следующее приложение позволяет рисовать трехмерную колбасу с подбором цветов.
Конечно можно сказать что мол, дружище, юзай three.js, никто не запрещает. Это верно. Но можно и объективно посмотреть на вещи: мы сегодня высыпаемся в вагоне, выходя покурить на каждом полустанке, пока мимо нас проезжают другие в renfe со скоростью 300 км/час. Если человек решил жить нодовой логикой и не лезет в js - это тоже его выбор - не сделали нужную ноду - сиди жди или лезь в js. А если лезет? Тем более, что все API на js…
То есть сидишь ты в блендере, рисуешь трехмерку и вот, появляется возможность показать ее в браузере - хорошо, интересно. Пользуешься вьювером без кодинга и скидываешь заказчикам ссылки? Ок.
Это получается тА черта, заходя за которую ты сразу начинаешь задумываться о перескоке на другие рельсы? Не жалко будет, если народ азбуку выучит на примере как сделать кнопку и включить прозрачность, а потом полноценно уйдет в кодинг чтобы иметь возможность делать сочняк в условиях конкурентного рынка на базе кучи исходников, экспортируя json и анимацию из того же блендера или будет напрямую загружать модели?
Это не критика. Можете сами проверить и сделать свои выводы. Еще хуже будет если народ начнет экспортировать ресурсы, пользуясь бесплатными скриптами, а потом экспортировать другой json и использовать обертку из см.выше. Бизнесу от этого лучше не будет…
Алексей
12 апреля 2017 01:29
Смотрите, как это выглядит:
// controllers
controller1 = new THREE.ViveController( 0 );
controller1.standingMatrix = controls.getStandingMatrix();
controller1.addEventListener( 'triggerdown', onTriggerDown );
controller1.addEventListener( 'triggerup', onTriggerUp );
scene.add( controller1 );
controller2 = new THREE.ViveController( 1 );
controller2.standingMatrix = controls.getStandingMatrix();
controller2.addEventListener( 'triggerdown', onTriggerDown );
controller2.addEventListener( 'triggerup', onTriggerUp );
scene.add( controller2 );
var loader = new THREE.OBJLoader();
loader.setPath( 'models/obj/vive-controller/' );
loader.load( 'vr_controller_vive_1_5.obj', function ( object ) {
var loader = new THREE.TextureLoader();
loader.setPath( 'models/obj/vive-controller/' );
var controller = object.children[ 0 ];
controller.material.map = loader.load( 'onepointfive_texture.png' );
controller.material.specularMap = loader.load( 'onepointfive_spec.png' );
controller1.add( object.clone() );
controller2.add( object.clone() );
} );
Алексей