Mr F
Придумал, что могу запечь AO в вершины - запек, выбрал в PlayCanvas в материале "Vertex Colors" в AO и все отлично получилось.
Теперь вот подумал, что может как-то можно избавиться от запеченных в текстуры lightmap'ов? Добавлю в модель чуть больше геометрии, запеку в цвет еще и тени и может получиться неплохо.
Только пока не придумал, где и чем это можно сделать.
И вот самое главное - что выбирать в материале PlayCanvas? Если тени запечь в цвет вместе с AO и отображать их как AO, то будет выглядеть нормально или нужно придумать что-то другое?
GLITCHMAN
> Только пока не придумал, где и чем это можно сделать.
3д макс умеет, если запекать свет с помощью встроенного Radiosity, а затем юзать встроенную же утилку Assign Vertex Colors, дабы та сохраняла его в реальный экспортируемый вертекс колор.
здесь расказано, как АО печь таким макаром: http://wiki.polycount.com/wiki/Ambient_occlusion_vertex_color#3ds… x_-_Radiosity
но тем же путём можно и любое освещение (тени, GI...)
один минус - в плейканвасе вертексколор не HDR.
>Если тени запечь в цвет вместе с AO и отображать их как AO, то будет выглядеть нормально
вряд ли... АО просто затемняет амбиент освещение. тени в лайтмапе могут быть от множества разноцветных источников, и движковые источники не затеняются АО.
>или нужно придумать что-то другое?
ну ты можешь выбрать "vertex colors" в, собственно, лайтмапе
Собственно назрели ещё вопросы:
Как-то можно реализовать в PlayCanvas(и в Юнити, если кто знает) следующее:
1. Скажем, клиент на вэб-страничке загружает свой логотип(битмапа), либо пишет название своей конторы, и потом оно отображается на модели. То-есть, есть ли связка с содержимым страницы, и можно ли передавать данные введенные(загруженные) пользователем, чтобы оно участвовало в отрисовке?
2. Как реализовать в PlayCanvas - UI? Скажем, чекбоксы/выпадающие списки по смене цветов/материалов на модели? В Юньке уже справился, вопрос теперь как тут повторить.
Plastic
> 1. Скажем, клиент на вэб-страничке загружает свой логотип(битмапа), либо пишет
> название своей конторы, и потом оно отображается на модели. То-есть, есть ли
> связка с содержимым страницы, и можно ли передавать данные
> введенные(загруженные) пользователем, чтобы оно участвовало в отрисовке?
Да. Использовать Canvas (API браузера) - нарисовать на нем битмапу или текст, а затем программно через API PlayCanvas'a использовать его в материале модели.
Все, что умеет делать PlayCanvas через редактор, все повторяемо программно в рантайме - см. документацию PlayCanvas и исходник движка https://github.com/playcanvas/engine
> 2. Как реализовать в PlayCanvas - UI? Скажем, чекбоксы/выпадающие списки по
> смене цветов/материалов на модели? В Юньке уже справился, вопрос теперь как тут
> повторить.
Два пути - или HTML UI со стандартными системными чекбоксами и выпадающими списками, что скорее всего правильнее будет.
Или второй способ - самому реализовать через UI слой PlayCanvas'a - https://developer.playcanvas.com/en/user-manual/user-interface/
И, кстати, PlayCanvas продали Snapchat'у, а топикстартер и Mr F там уже не работают.
GLITCHMAN
> И, кстати, PlayCanvas продали Snapchat'у, а топикстартер и Mr F там уже не
> работают.
-омайгад, где же теперь можно получить русскоязычную поддержку? О_о
Спасибо за ответы, буду копать.
GLITCHMAN
> Да. Использовать Canvas (API браузера) - нарисовать на нем битмапу или текст, а
> затем программно через API PlayCanvas'a использовать его в материале модели.
> Все, что умеет делать PlayCanvas через редактор, все повторяемо программно в
> рантайме - см. документацию PlayCanvas и исходник движка
> https://github.com/playcanvas/engine
-вот здесь небольшое уточнение, если я всё собираю в редакторе, возможно ли через какой-то скрипт получить инфу с вэб-страницы, или однозначно надо кодить в файлах, без редактора PlayCanvas?
GLITCHMAN
> Два пути - или HTML UI со стандартными системными чекбоксами и выпадающими
> списками, что скорее всего правильнее будет.
-опять же, встаёт проблема передачи из хтмл-страницы в плэйканвас...
Plastic
> -вот здесь небольшое уточнение, если я всё собираю в редакторе, возможно ли
> через какой-то скрипт получить инфу с вэб-страницы, или однозначно надо кодить
> в файлах, без редактора PlayCanvas?
Все НАДО кодить в скриптах через редактор PlayCanvas. Все реализуемо с помощью JavaScript'a.
> -опять же, встаёт проблема передачи из хтмл-страницы в плэйканвас...
Нет!
Например,
https://developer.playcanvas.com/ru/tutorials/htmlcss-ui/
Отлично, спасибо за пример ))
Почему-то сайт https://playcanvas.com/ у меня перестал быть доступным из РФ, только через прокси.
8Observer8
> у меня перестал быть доступным из РФ, только через прокси.
РКН -> Telegram -> Amazon... а PlayCanvas на Амазоне.
34.252.80.177
34.246.204.142
Реквизиты основания внесения в реестр (орган принявший решение, номер, дата)
Генпрокуратура 27-31-2018/Ид2971-18 16.04.2018
Plastic
> 1. Скажем, клиент на вэб-страничке загружает свой логотип(битмапа), либо пишет
> название своей конторы, и потом оно отображается на модели. То-есть, есть ли
> связка с содержимым страницы, и можно ли передавать данные
> введенные(загруженные) пользователем, чтобы оно участвовало в отрисовке?
var canvas = document.createElement('canvas'); canvas.width = width; canvas.height = height; var context = canvas.getContext('2d'); context.drawImage(image, 0, 0, width, height, 0, 0, width, height); var texture = new pc.Texture(this.app.graphicsDevice, { width: width, height: height, format: pc.PIXELFORMAT_R8_G8_B8_A8 }); texture.setSource(canvas); material.diffuseMap = texture;
такое должно прокатить
GLITCHMAN
> Генпрокуратура
педики
Mr F
> такое должно прокатить
-спасибо огромное, буду пробовать )
Прошу прощения, а ещё вопрос: как загрузить логотип именно из файла?
То-есть, чтобы пользователь нажал на кнопку, и появился диалог загрузки стандартный, он выбрал свою картинку и она юзалась как текстура..?
Как в самом js загружать картинку в канвас, те варианты которые я пробовал, почему-то не подошли (вообще я не слишком большой спец в JS, посему, если можно...) ?
Plastic
> либо пишет название своей конторы, и потом оно отображается на модели.
Этот момент мне непонятен. Правильно ли я представляю, грубо говоря, есть 3D модель с текстурой, допустим кубик. Есть поле ввода куда вводится текст и кнопка . Пользователь вводит текст, нажимает кнопку, и этот текст отображается на одной из сторон кубика. Примерно такой пример нужен для начала?
Да, это один из вариантов.
Ещё (возможно это проще) нужен аплоад картинки в браузере, которая, грубо говоря, тоже отрисовывается на одной из сторон кубика.
Заранее Спасибо )
var texture = new pc.Texture(this.app.graphicsDevice, {
width: width,
height: height,
format: pc.PIXELFORMAT_R8_G8_B8_A8
});
-сейчас ругается на this.app
Тема в архиве.