|
3D-программирование Вопросы, касающиеся программирования 3D мира |
18.12.2010, 16:37
|
#16
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
Ой неужели я правда такую ссылку запостил? Вот балда
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
18.12.2010, 16:45
|
#17
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
Сообщение от ABTOMAT
Ой неужели я правда такую ссылку запостил? Вот балда
|
Да, ссылка эпическая по размеру
|
(Offline)
|
|
18.12.2010, 16:48
|
#18
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений (для 6,853 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
И тут в тред врывается рандоме.
HidePointer() Global camera,light,world,Flex,mx#,my#,ball,w ;setup graphics and scene Graphics3D 800,600,32,2 SetBuffer BackBuffer() camera=CreateCamera() CameraRange camera,1,1600 MoveEntity camera,500,800,500 light=CreateLight(2) MoveEntity light,0,400,400 LightRange light,350 AmbientLight 50,50,50 ;make test world world=CreateWorld() ;make shadow Flex=CreateFlex() EntityColor Flex, 0, 255, 0 ;hack ;whitetexture=CreateTexture(32,32) ;make ball ball=CreateSphere() EntityColor ball,255,0,0 EntityShininess ball,1 ScaleEntity ball,50,50,50 MoveEntity ball,0,300,0 TurnEntity ball,0,-45,0 ;misc PointEntity camera,world SetBuffer BackBuffer() ;mainloop While Not KeyHit(1) If KeyHit(17) w=1-w WireFrame w ;visibility hack for you to test If w=1 EntityBlend Flex,1 Else EntityBlend Flex,2 EndIf EndIf mx#=MouseXSpeed()*0.5 my#=MouseYSpeed()*0.5 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 MoveEntity ball,-mx,0,my ;UpdateFlex(target deformable mesh (try a model!!),mesh that casts shadow) UpdateFlex(Flex,ball) UpdateWorld RenderWorld Text 0,0,"Use mouse to move ball, watch the shadow!" Text 0,16,"press 'w' to toggle wireframe mode, ESC to quit." Flip Wend End ;load your own level? but make it pickable. Function CreateWorld() p=CreatePivot() a=CreateCube(p) FitMesh a,-500,0,-500,1000,10,1000 a=CreateCube(p) FitMesh a,-200,10,-200,400,40,400 a=CreateSphere(8,p) ScaleEntity a,100,100,100 MoveEntity a,-200,0,-200 a=CreateSphere(8,p) ScaleEntity a,100,100,100 MoveEntity a,200,0,-200 a=CreateSphere(8,p) ScaleEntity a,100,100,100 MoveEntity a,200,0,200 a=CreateSphere(8,p) ScaleEntity a,100,100,100 MoveEntity a,-200,0,200 For i=1 To CountChildren(p) EntityPickMode GetChild(p,i),2 Next Return p End Function Function CreateFlex() m=CreateFace(8) ;segs ScaleEntity m,250,250,250 Return m End Function Function UpdateFlex(flexmesh,source) x#=EntityX(source):y#=EntityY(source):z#=EntityZ(source) PositionEntity flexmesh,x,y,z ;you can optimise by precalculating x and z s=GetSurface(flexmesh,1) For i=0 To CountVertices(s)-1 vx#=VertexX(s,i) vy#=0 vz#=VertexZ(s,i) TFormPoint vx,vy,vz,flexmesh,0 vx=TFormedX() : vy=TFormedY() : vz=TFormedZ() LinePick vx,vy,vz,vx,vy-9000,vz vy=PickedY()+50 TFormPoint vx,vy,vz,0,flexmesh vx=TFormedX() : vy=TFormedY() : vz=TFormedZ() VertexCoords s,i,vx,vy,vz Next End Function ;Creates a single sided face ;segmented Function CreateFace(segs=1,double=False,parent=0) mesh=CreateMesh( parent ) surf=CreateSurface( mesh ) stx#=-.5 sty#=stx stp#=Float(1)/Float(segs) y#=sty For a=0 To segs x#=stx v#=a/Float(segs) For b=0 To segs u#=b/Float(segs) AddVertex(surf,x,0,y,u,v) ; swap these for a different start orientation x=x+stp Next y=y+stp Next For a=0 To segs-1 For b=0 To segs-1 v0=a*(segs+1)+b:v1=v0+1 v2=(a+1)*(segs+1)+b+1:v3=v2-1 AddTriangle( surf,v0,v2,v1 ) AddTriangle( surf,v0,v3,v2 ) Next Next UpdateNormals mesh If double=True Then EntityFX mesh,16 Return mesh End Function
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
|
|
18.12.2010, 16:50
|
#19
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
VertexCoords s,i,vx,vy,vz
|
Тред не читай @ Сразу отвечай
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
|
|
18.12.2010, 17:55
|
#20
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
Тэк, делалось на не трезвую голову. ЗЫ Название переменных, отвечающих за объекты влом переименовывать. В коде никаких Pick, которые очень медленно будут работать на террайнах не требуется.
Пример:
http://rghost.ru/3655618
CreateSymbol(Entity,Texture%,Size#,GridSize%)
Entity - Обьект под которым рисуем символ.
Texture - Текстура на символ.
Size - Размер символа.
GridSize - Размер сетки.
* Возращает хендл на символ.
UpdateSymbols(Terrain%)
Terrain - Террайн.
* Апдейт.
FreeSymbol(h%)
h - Хендл на символ
* Удаление.
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо EvilChaotic за это полезное сообщение:
|
|
18.12.2010, 18:16
|
#21
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
я делал просто квад с текстурой ауры !! квад под ноги юниту !! Выставлял ордер кваду что бы он редерился после террейна !! Тут есть одно ололо - если юнит стоит на склоне, то можно так выкрутить камеру что с другой стороны склона рендерился этот квад !!
Но у меня камеры была почти всегда с верху, так что трабла эта отпадала !!
|
(Offline)
|
|
18.12.2010, 18:34
|
#22
|
Оператор ЭВМ
Регистрация: 18.12.2010
Сообщений: 22
Написано 4 полезных сообщений (для 9 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
Спасибо EvilChaotic за хороший пример. Думаю тему можно закрывать.
|
(Offline)
|
|
18.12.2010, 19:16
|
#23
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
EvilChaotic. Тормозит сильно. Имхо тут проще и разумней квад сделать.
__________________
Ибо как сказал Бгдн:
|
(Offline)
|
|
18.12.2010, 19:29
|
#24
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
Сообщение от Gector
EvilChaotic. Тормозит сильно. Имхо тут проще и разумней квад сделать.
|
Оно не может тормозить и темболее сильно от 6x6 террайн игриков. Сдаться мне, что ты говоришь о движении сферы Sin/Cos. Закоменти функцию создания символа - увидишь тежи "лаги" при движении сферы и отсутствие эффекта. А лучше напиши счетчик фпс и отключи синхронизацию кадров.
Вот, 389:
Без эффекта 402.
Оно нормально работает.
|
(Offline)
|
|
18.12.2010, 20:19
|
#25
|
Оператор ЭВМ
Регистрация: 18.12.2010
Сообщений: 22
Написано 4 полезных сообщений (для 9 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
Сообщение от Gector
EvilChaotic. Тормозит сильно. Имхо тут проще и разумней квад сделать.
|
Вполне хорошо работает, на моем железе фпс: 840-870 выдает.
|
(Offline)
|
|
18.12.2010, 20:19
|
#26
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
А вот чо... Стер движение по синусу и подставил обыкновенное движение. Все заработало. Я честно говоря сам понять не мог откуда взялись "тормоза" при переборе нескольких вершин.
__________________
Ибо как сказал Бгдн:
|
(Offline)
|
|
18.12.2010, 20:25
|
#27
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
Угу. А вообще это моя ошибка.
Local sinX# = Sin(Float(MilliSecs()) / 30 ) * 30
Local sinZ# = Cos(Float(MilliSecs()) / 30 ) * 30
Так будет работать плавно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.12.2010, 20:26
|
#28
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Создание эффектов в стиле WarCraft
856-902 фпс, полёт отличный
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:20.
|