Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 03.07.2010, 22:06   #931
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от Dream Посмотреть сообщение
создать ещё один такой мешь, увеличить его, сделать Flip, покрасить в чёрный цвет и немного прозрачности)
Просто увеличить подойдет для шарика, но не подойдет для сложной геометрии. Более верный вариант - скопировать меш повершинно и каждую вершину сдвинуть в сторону нормали на величину обводки. И поменять знак у составляющих нормали (Flip). Такой вариант правда может не подойти для некоторой геометрии, например для кубика т.к. в углах будут видны расслоения граней, но зато для органической модели создаст "правильную" обводку.

Лучший вариант - заготовить модель для обводки в 3d пакете.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dream (03.07.2010)
Старый 03.07.2010, 22:10   #932
Kolobok
Оператор ЭВМ
 
Аватар для Kolobok
 
Регистрация: 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
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопрос-Ответ (для новичков)

уффффффф... FlipMesh!!!!

Сообщение от pax Посмотреть сообщение
Просто увеличить подойдет для шарика, но не подойдет для сложной геометрии. Более верный вариант - скопировать меш повершинно и каждую вершину сдвинуть в сторону нормали на величину обводки. И поменять знак у составляющих нормали (Flip). Такой вариант правда может не подойти для некоторой геометрии, например для кубика т.к. в углах будут видны расслоения граней, но зато для органической модели создаст "правильную" обводку.

Лучший вариант - заготовить модель для обводки в 3d пакете.
да, для того чтобы на моделях ыбло номарльно, нужно будет в редакторе позицинировать центр модели по цетру координат, иначе будут косяки.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Kolobok (03.07.2010)
Старый 03.07.2010, 22:15   #934
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Вопрос-Ответ (для новичков)

И поменять знак у составляющих нормали (Flip)
Эээ, FlipMesh() меняет местами 1 и 3 индексы в треугольниках. В результате видимой становится другая грань треугольника (инвертируется нормаль считаемая как cross(v1 - v0, v2 - v0) и используемая в backface culling). Такой метод обводки использовался фиг знает с каких времен. А то что ты написал займет в стопицот раз больше времени, да и результат получится хуже.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
Dream (03.07.2010), Egor Rezenov (04.07.2010), pax (03.07.2010), tormoz (03.07.2010)
Старый 03.07.2010, 22:25   #935
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Алсо, этот вариант отрисовывает в два раза больше вертексов. Самый правильный вариант - использовать шейдер. Как этот эффект называется забыл, но знаю что он широко применяется в аниме играх
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reks888 (03.07.2010)
Старый 03.07.2010, 22:39   #936
Kolobok
Оператор ЭВМ
 
Аватар для Kolobok
 
Регистрация: 02.07.2010
Сообщений: 30
Написано 0 полезных сообщений
(для 7 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Во FlipMesh() - то что хотел
Яж не буду использовать загогулины ) Так что и это пойдёт.
(Offline)
 
Ответить с цитированием
Старый 03.07.2010, 22:51   #937
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от Hurrit Посмотреть сообщение
Алсо, этот вариант отрисовывает в два раза больше вертексов. Самый правильный вариант - использовать шейдер. Как этот эффект называется забыл, но знаю что он широко применяется в аниме играх
кажется toon shader назывется, когда делается обводка
но в блице шейдеров нету, поэтому...
(Offline)
 
Ответить с цитированием
Старый 03.07.2010, 22:55   #938
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Двухпроходный шейдер, выполняющий ту же функцию, что и описанную мной не применим к блитцу (кроме Xors). Да я ошибся, и сейчас вспомнил что в шейдере просто указывается другой порядок обхода вершин для лицевой стороны полигонов и берется монотонный цвет. Но рисует этот метод такое же количество поликов (т.е. два прохода = х2). Пока не знаю других вариантов для создания outline эффекта (не было надобности копать глубже).
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dream (03.07.2010)
Старый 04.07.2010, 00:37   #939
Kolobok
Оператор ЭВМ
 
Аватар для Kolobok
 
Регистрация: 02.07.2010
Сообщений: 30
Написано 0 полезных сообщений
(для 7 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Мне в игре Princ Of Persia 4 понравилась обводка, вот решил что-то подобное сделать, только проще, тетрис какой-нибудь )
(Offline)
 
Ответить с цитированием
Старый 04.07.2010, 01:20   #940
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Мне в игре Princ Of Persia 4 понравилась обводка, вот решил что-то подобное сделать, только проще, тетрис какой-нибудь )
если я не ошибаюсь, то это бублики движка
(Offline)
 
Ответить с цитированием
Старый 04.07.2010, 03:39   #941
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от Kolobok Посмотреть сообщение
Мне в игре Princ Of Persia 4 понравилась обводка, вот решил что-то подобное сделать, только проще, тетрис какой-нибудь )
Function Cel_Shade(Shaded_EntityOutlineScale#=0.025, r#=0, g#=0, b#=0)
    
Local Outline_Entity CopyMesh(Shaded_Entity)         
    
UpdateNormals(Outline_Entity
    
EntityFX(Outline_Entity1+8)
    
    
    
Local i
    
For 1 To CountSurfaces(Outline_Entity)
        
        
Local surf GetSurface(Outline_Entityi)
        
Local j
        
        
For 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 (surfjVx#+(VNx#*OutlineScale#), Vy#+(VNy#*OutlineScale#), Vz#+(VNz#*OutlineScale#))
        
Next
        
    Next
    
    FlipMesh Outline_Entity
    EntityColor Outline_Entity
rgb
    PositionEntity Outline_Entity
EntityX#(Shaded_Entity, True), EntityY#(Shaded_Entity, True), EntityZ#(Shaded_Entity, True)
    
EntityParent Outline_EntityShaded_Entity
End 
Function 
(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
Arles (15.07.2010), Dream (04.07.2010), impersonalis (06.07.2010), is.SarCasm (04.07.2010), Kolobok (04.07.2010), Nex (19.07.2010), pax (04.07.2010)
Старый 04.07.2010, 22:47   #942
Kolobok
Оператор ЭВМ
 
Аватар для Kolobok
 
Регистрация: 02.07.2010
Сообщений: 30
Написано 0 полезных сообщений
(для 7 пользователей)
Ответ: Вопрос-Ответ (для новичков)

А как скрывать, отображать объекты?
Типа свойства Visible...

Добавил:
Всё разобрался
HideEntity
ShowEntity
(Offline)
 
Ответить с цитированием
Старый 04.07.2010, 23:04   #943
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Первый способ:
EntitAlpha - настраивает прозрачность. 0 = невидимко
Второй способ:
HideEntity - причем он не только прячится, но и не используется в коллизиях. См. справку.
Скрывает объект так, что он становится невидимым и больше не участвует в столкновения.

Основное применение - позволяет Вам создавать все объекты в начале программы, скрывать их, а затем копировать их и показывать по мере необходимости в основном игра. Это более эффективно, чем создание объектов в процессе игры.

Если Вы желаете скрыть объект так, чтобы он стал невидим, но все еще участвовал в столкновениях, то используйте команду EntityAlpha 0 вместо HideEntity. Это сделает объект полностью прозрачным.

HideEntity действует на указанный объект и все его дочерние(привязанные к нему) объекты, если такие существуют.

Последний раз редактировалось is.SarCasm, 05.07.2010 в 12:56.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Kolobok (05.07.2010)
Старый 05.07.2010, 13:26   #944
RlexGm
ПроЭктировщик
 
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений
(для 34 пользователей)
Ответ: Вопрос-Ответ (для новичков)

я написал говнокод приседания, но он слишком багнутый, хочу узнать как это делается цивилизованно.Может кто нибудь дать пример с использованием.Приседание примерно как в CS 1.6 (ну и в других шутерах)
(Offline)
 
Ответить с цитированием
Старый 05.07.2010, 13:54   #945
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Ну... делаешь анимацию приседания... потом запускаешь анимацию ходьбу на корточках... как-то так...

Я надеюсь не программным путем кости двигал?)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйста дайте ответ на несколько вопросов Kuzma 3D-программирование 8 06.10.2009 19:38
Предложение к теме "вопрос-ответ" jimon Наш форум 1 27.02.2009 19:26
Мой ответ Жеке! alcosholik Болтовня 5 19.11.2005 16:41


Часовой пояс GMT +4, время: 17:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com