|
07.05.2014, 20:51
|
#1
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Багофича с выдавливанием по нормалям
Привет, булчан!
Суть проблемы такова - если выдавливать некие вершины, которые не попадают под сглаживание (например, сглаживание 30 градусов, а у нас куб), то вершины выдавливаются независимо друг от друга. Вот так
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
07.05.2014, 21:08
|
#2
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
ну типа да. там где разные нормали, вертексы в одной точке разные, хоть и с одинаковой позицией.
а в чём вопрос?
|
(Offline)
|
|
07.05.2014, 21:58
|
#3
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Сообщение от Mr_F_
а в чём вопрос?
|
Можно ли это обойти? Или придется хорошенько поизвращаться?
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
07.05.2014, 22:02
|
#4
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
смотря чего ты хочешь добиться.
|
(Offline)
|
|
07.05.2014, 22:08
|
#5
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Что бы вершины всегда вели себя так, будто они подвержены сглаживанию. А то не получается шейдер как на картинке использовать на прямоугольниках и т.д.
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
07.05.2014, 23:07
|
#6
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Что ты хочешь получить выдавливанием по нормали?
Конкретно на твоём примере и скейл сойдёт.
Можно хранить в вертексах дополнительные сглаженные нормали для выдавливания (в юнити тебе проще будет альтернативную модель сглаженную импортнуть).
|
(Offline)
|
|
08.05.2014, 01:57
|
#7
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Сообщение от Mr_F_
Конкретно на твоём примере и скейл сойдёт.
|
В том то и проблема, что модели будут сложной формы.
Сообщение от Mr_F_
Можно хранить в вертексах дополнительные сглаженные нормали для выдавливания (в юнити тебе проще будет альтернативную модель сглаженную импортнуть).
|
Я думал в самой модели тупо сделать копию меша, вывернуть и выдавить (с помощью макса, например). Эдакая двухслойная модель. Но это уже извращение.
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
08.05.2014, 02:22
|
#8
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Как сказал Mr_F_ либо храни доп. информацию в каждой вершине с направлением для сглаживания (можно легко автогенирировать при загрузке модели, пробегаясь по всем вершинам и смешивая нормали для тех, что имеют общую позицию, и добовлять в вершинные буфера).
Либо если тебе нужна обводка, это лучше достигается пост обработкой, следственно посмотри в этом направлении тоже.
|
(Offline)
|
|
08.05.2014, 02:31
|
#9
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Сообщение от moka
Как сказал Mr_F_ либо храни доп. информацию в каждой вершине с направлением для сглаживания (можно легко автогенирировать при загрузке модели, пробегаясь по всем вершинам и смешивая нормали для тех, что имеют общую позицию, и добовлять в вершинные буфера).
Либо если тебе нужна обводка, это лучше достигается пост обработкой, следственно посмотри в этом направлении тоже.
|
Постобработка ненавязчиво требует 1000$
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.05.2014, 07:18
|
#10
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Сообщение от moka
(можно легко автогенирировать при загрузке модели, пробегаясь по всем вершинам и смешивая нормали для тех, что имеют общую позицию, и добовлять в вершинные буфера).
|
К сожалению только отдельный меш, либо закодировать в массив colors например. Больше негде дополнительную инфу в меше хранить.
|
(Offline)
|
|
08.05.2014, 12:16
|
#11
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
tangents, если бамп не используется
colors вроде как 8 бит на канал - маловато
|
(Offline)
|
|
08.05.2014, 13:25
|
#12
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Сообщение от Mr_F_
tangents, если бамп не используется
colors вроде как 8 бит на канал - маловато
|
Угу, если не используется.
|
(Offline)
|
|
09.05.2014, 00:27
|
#13
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Сообщение от pax
К сожалению только отдельный меш, либо закодировать в массив colors например. Больше негде дополнительную инфу в меше хранить.
|
Это ограничения Unity? То есть модификация индексного буфера не возможна?
Сообщение от Mr_F_
tangents, если бамп не используется
colors вроде как 8 бит на канал - маловато
|
Это опять в Unity такое ограничение на данные цвета?
|
(Offline)
|
|
09.05.2014, 01:46
|
#14
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
Сообщение от moka
Это ограничения Unity? То есть модификация индексного буфера не возможна?
|
Да, вероятно это сделано для совместимости со всеми поддерживаемыми платформами. Их уже вероятно больше десяти.
Сообщение от moka
Это опять в Unity такое ограничение на данные цвета?
|
Вообще массив цветов это 4*float, как оно в шейдер передается я не знаю (вероятнее всего флоатами).
|
(Offline)
|
|
09.05.2014, 01:49
|
#15
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Багофича с выдавливанием по нормалям
То есть модификация индексного буфера не возможна?
|
возможно. скопировать программно меш и сделать ему новый IB со склееными вертексами можно. "Больше негде дополнительную инфу в меше хранить." - значит что нельзя расширять существующую структуру вертекса, в юнити она захардкодена намертво.
Это опять в Unity такое ограничение на данные цвета?
|
на самом деле это лишь моё предположение, т.к. вертексколор чаще всего хранят в формате D3DDECLTYPE_D3DCOLOR (в DX, по крайней мере):
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Учитывая, что в юнити довольно пожатая вертексная структура, и colors предназначен именно для цвета, то ставлю 3 рубля на то, что используются именно 1 байт на канал.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:12.
|