|
03.07.2010, 22:06
|
#931
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от Dream
создать ещё один такой мешь, увеличить его, сделать Flip, покрасить в чёрный цвет и немного прозрачности)
|
Просто увеличить подойдет для шарика, но не подойдет для сложной геометрии. Более верный вариант - скопировать меш повершинно и каждую вершину сдвинуть в сторону нормали на величину обводки. И поменять знак у составляющих нормали (Flip). Такой вариант правда может не подойти для некоторой геометрии, например для кубика т.к. в углах будут видны расслоения граней, но зато для органической модели создаст "правильную" обводку.
Лучший вариант - заготовить модель для обводки в 3d пакете.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.07.2010, 22:10
|
#932
|
Оператор ЭВМ
Регистрация: 02.07.2010
Сообщений: 30
Написано 0 полезных сообщений (для 7 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от Dream
сделать флип! читай внимательно
|
Не знаю о чём ты, вот мой полный код (и флип, я его везде пишу в 3д):
Graphics3D 800, 600, 32, 2
SetBuffer BackBuffer()
light = CreateLight()
RotateEntity light, 35,20,0
shape = CreateSphere()
EntityColor shape,255,255,0
border = CreateSphere(8,shape)
EntityAlpha border,.3
EntityColor border,255,0,0
ScaleEntity border,1.1,1.1,1.1
cam = CreateCamera(shape)
PositionEntity cam,0,3,-6
RotateEntity cam,10,0,0
While Not KeyHit(1)
UpdateWorld
RenderWorld
Flip
Wend
|
(Offline)
|
|
03.07.2010, 22:11
|
#933
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
уффффффф... FlipMesh!!!!
Сообщение от pax
Просто увеличить подойдет для шарика, но не подойдет для сложной геометрии. Более верный вариант - скопировать меш повершинно и каждую вершину сдвинуть в сторону нормали на величину обводки. И поменять знак у составляющих нормали (Flip). Такой вариант правда может не подойти для некоторой геометрии, например для кубика т.к. в углах будут видны расслоения граней, но зато для органической модели создаст "правильную" обводку.
Лучший вариант - заготовить модель для обводки в 3d пакете.
|
да, для того чтобы на моделях ыбло номарльно, нужно будет в редакторе позицинировать центр модели по цетру координат, иначе будут косяки.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.07.2010, 22:15
|
#934
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
И поменять знак у составляющих нормали (Flip)
|
Эээ, FlipMesh() меняет местами 1 и 3 индексы в треугольниках. В результате видимой становится другая грань треугольника (инвертируется нормаль считаемая как cross(v1 - v0, v2 - v0) и используемая в backface culling). Такой метод обводки использовался фиг знает с каких времен. А то что ты написал займет в стопицот раз больше времени, да и результат получится хуже.
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
|
|
03.07.2010, 22:25
|
#935
|
Мастер
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений (для 2,207 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Алсо, этот вариант отрисовывает в два раза больше вертексов. Самый правильный вариант - использовать шейдер. Как этот эффект называется забыл, но знаю что он широко применяется в аниме играх
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.07.2010, 22:39
|
#936
|
Оператор ЭВМ
Регистрация: 02.07.2010
Сообщений: 30
Написано 0 полезных сообщений (для 7 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Во FlipMesh() - то что хотел
Яж не буду использовать загогулины ) Так что и это пойдёт.
|
(Offline)
|
|
03.07.2010, 22:51
|
#937
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от Hurrit
Алсо, этот вариант отрисовывает в два раза больше вертексов. Самый правильный вариант - использовать шейдер. Как этот эффект называется забыл, но знаю что он широко применяется в аниме играх
|
кажется toon shader назывется, когда делается обводка
но в блице шейдеров нету, поэтому...
|
(Offline)
|
|
03.07.2010, 22:55
|
#938
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Двухпроходный шейдер, выполняющий ту же функцию, что и описанную мной не применим к блитцу (кроме Xors). Да я ошибся, и сейчас вспомнил что в шейдере просто указывается другой порядок обхода вершин для лицевой стороны полигонов и берется монотонный цвет. Но рисует этот метод такое же количество поликов (т.е. два прохода = х2). Пока не знаю других вариантов для создания outline эффекта (не было надобности копать глубже).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.07.2010, 00:37
|
#939
|
Оператор ЭВМ
Регистрация: 02.07.2010
Сообщений: 30
Написано 0 полезных сообщений (для 7 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Мне в игре Princ Of Persia 4 понравилась обводка, вот решил что-то подобное сделать, только проще, тетрис какой-нибудь )
|
(Offline)
|
|
04.07.2010, 01:20
|
#940
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Мне в игре Princ Of Persia 4 понравилась обводка, вот решил что-то подобное сделать, только проще, тетрис какой-нибудь )
|
если я не ошибаюсь, то это бублики движка
|
(Offline)
|
|
04.07.2010, 03:39
|
#941
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений (для 6,853 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от Kolobok
Мне в игре Princ Of Persia 4 понравилась обводка, вот решил что-то подобное сделать, только проще, тетрис какой-нибудь )
|
Function Cel_Shade(Shaded_Entity, OutlineScale#=0.025, r#=0, g#=0, b#=0) Local Outline_Entity = CopyMesh(Shaded_Entity) UpdateNormals(Outline_Entity) EntityFX(Outline_Entity, 1+8) Local i For i = 1 To CountSurfaces(Outline_Entity) Local surf = GetSurface(Outline_Entity, i) Local j For j = 0 To CountVertices(surf) - 1 Local Vx# = VertexX#(surf, j) Local Vy# = VertexY#(surf, j) Local Vz# = VertexZ#(surf, j) Local VNx# = VertexNX#(surf, j) Local VNy# = VertexNY#(surf, j) Local VNz# = VertexNZ#(surf, j) VertexCoords (surf, j, Vx#+(VNx#*OutlineScale#), Vy#+(VNy#*OutlineScale#), Vz#+(VNz#*OutlineScale#)) Next Next FlipMesh Outline_Entity EntityColor Outline_Entity, r, g, b PositionEntity Outline_Entity, EntityX#(Shaded_Entity, True), EntityY#(Shaded_Entity, True), EntityZ#(Shaded_Entity, True) EntityParent Outline_Entity, Shaded_Entity End Function
|
(Offline)
|
|
Эти 7 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
|
|
04.07.2010, 22:47
|
#942
|
Оператор ЭВМ
Регистрация: 02.07.2010
Сообщений: 30
Написано 0 полезных сообщений (для 7 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
А как скрывать, отображать объекты?
Типа свойства Visible...
Добавил:
Всё разобрался
HideEntity
ShowEntity
|
(Offline)
|
|
04.07.2010, 23:04
|
#943
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Первый способ:
EntitAlpha - настраивает прозрачность. 0 = невидимко
Второй способ:
HideEntity - причем он не только прячится, но и не используется в коллизиях. См. справку.
Скрывает объект так, что он становится невидимым и больше не участвует в столкновения.
Основное применение - позволяет Вам создавать все объекты в начале программы, скрывать их, а затем копировать их и показывать по мере необходимости в основном игра. Это более эффективно, чем создание объектов в процессе игры.
Если Вы желаете скрыть объект так, чтобы он стал невидим, но все еще участвовал в столкновениях, то используйте команду EntityAlpha 0 вместо HideEntity. Это сделает объект полностью прозрачным.
HideEntity действует на указанный объект и все его дочерние(привязанные к нему) объекты, если такие существуют.
|
Последний раз редактировалось is.SarCasm, 05.07.2010 в 12:56.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.07.2010, 13:26
|
#944
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
я написал говнокод приседания, но он слишком багнутый, хочу узнать как это делается цивилизованно.Может кто нибудь дать пример с использованием.Приседание примерно как в CS 1.6 (ну и в других шутерах)
|
(Offline)
|
|
05.07.2010, 13:54
|
#945
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Ну... делаешь анимацию приседания... потом запускаешь анимацию ходьбу на корточках... как-то так...
Я надеюсь не программным путем кости двигал?)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:30.
|