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

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

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

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 29.07.2006, 22:40   #16
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: b3d хелп или описание

1. А немного напутал - всегда был 1 чилд. Структура модели (земля и точки установки домиков, ну для пробы): земля к SceneRoot, все остальное к земле. Entity в команде была сама загруженная модель земли. (я уже начал подозревать что мне показывалось количество чилдов SceneRoot )

2. Ясно

3. Нет всмысле на этапе создания карты в максе указать тип объекта, а потом какнибудь вычленить, например из имени объекта ("light_1_3") - где 1 скажем тип, а 3 радиус.

4. Просто как то назвал вроде объект "arm-left" и он отказался находиться.

ЗЫ
Какой софт посоветуете для проектирования структуры проекта игры? Для отслеживания изменений и тп
(Offline)
 
Ответить с цитированием
Старый 30.07.2006, 01:52   #17
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: b3d хелп или описание

ToDoList вроде неплохая прога.

Насчет имен. Они задаются в Максе. В блице же, обращаясь к чилду по имени нужно учитывать регистр. Само имя может быть произвольным.
(Offline)
 
Ответить с цитированием
Старый 31.07.2006, 10:48   #18
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Re: b3d хелп или описание

Народ нужно полное обисание формата b3d может пример кто где видал на С++ или Delphi киньте ссылку буду презнателен....
(Offline)
 
Ответить с цитированием
Старый 31.07.2006, 13:54   #19
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: b3d хелп или описание

Как узнать с каким материалом происходит колизия?
(Offline)
 
Ответить с цитированием
Старый 31.07.2006, 17:51   #20
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: b3d хелп или описание

Сообщение от Trilliput
Как узнать с каким материалом происходит колизия?
В Блитце нет понятия "материал"
Есть текстура. текстурный слой.
А коллизия происходит с объектами.
Твой вопрос бессмыслен
__________________
(Offline)
 
Ответить с цитированием
Старый 31.07.2006, 18:08   #21
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: b3d хелп или описание

Хм странно а ранее мне ответили что можно получить инф о материале при коллизии.

Тогда как сделать распознование типа поверхности?
(Offline)
 
Ответить с цитированием
Старый 01.08.2006, 02:04   #22
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Re: b3d хелп или описание

спасибо БОЛЬШОЕ. сам нашел.
(Offline)
 
Ответить с цитированием
Старый 01.08.2006, 02:32   #23
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: b3d хелп или описание

Сообщение от Trilliput
Хм странно а ранее мне ответили что можно получить инф о материале при коллизии.

Тогда как сделать распознование типа поверхности?
Что ты подразумеваешь под "типом поверхности" ?
__________________
(Offline)
 
Ответить с цитированием
Старый 01.08.2006, 18:14   #24
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: b3d хелп или описание

Ну скажем мне надо узнавать что находиться под калесами например танка или машины, под ногами человека. Для создания разных эффектов - если песок то скажем один эффект, если грязь то второй. Ну и разное трение и сопративление для разных поверхностей на карте.

To: WaReZ_MEN

Нашел - поделись пожалуста.
(Offline)
 
Ответить с цитированием
Старый 01.08.2006, 20:04   #25
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: b3d хелп или описание

Только если узнаешь конкретную текстуру под "ногами"
На старом Блитцфоруме я выкладывал функции для этого. Жаль он не работает. Ща поищу в своей помойке...

Нашел. Разбирайся сам - сложная штука. Писалось давно уже все забыл
Можно определить текстуру. ее цвет, координаты натекстуре и тп

 
Global PickU#,PickV#,texture_buffer,texture_t,color_t%
Global LOverlapX#, LOverlapY#
Type TLine
Field x#
Field y#
Field dx#
Field dy#
End Type
Type TVector
Field x#, y#, z#
End Type

Function PickedToTexture(layer_t)
x#=PickedX()
y#=PickedY()
z#=PickedZ()
ent = PickedEntity()

surf = PickedSurface()
brush=GetSurfaceBrush(surf)
texture_t =GetBrushTexture(brush,layer_t)
texture_buffer=TextureBuffer(texture_t)

tri = PickedTriangle()
;transform
TFormPoint x, y, z, 0, ent
x=TFormedX()
y=TFormedY()
z=TFormedZ()
;coords of texture
u0#=VertexU(surf, TriangleVertex(surf, tri, 0),layer_t)
v0#=VertexV(surf, TriangleVertex(surf, tri, 0),layer_t)

u1#=VertexU(surf, TriangleVertex(surf, tri, 1),layer_t)
v1#=VertexV(surf, TriangleVertex(surf, tri, 1),layer_t)
Tex1=NewVector(u1-u0, v1-v0, 0)

u2#=VertexU(surf, TriangleVertex(surf, tri, 2),layer_t)
v2#=VertexV(surf, TriangleVertex(surf, tri, 2),layer_t)
Tex2=NewVector(u2-u0, v2-v0, 0)
;coords of vertex
gx0#=VertexX(surf, TriangleVertex(surf, tri, 0))
gy0#=VertexY(surf, TriangleVertex(surf, tri, 0))
gz0#=VertexZ(surf, TriangleVertex(surf, tri, 0))
gx1#=VertexX(surf, TriangleVertex(surf, tri, 1))
gy1#=VertexY(surf, TriangleVertex(surf, tri, 1))
gz1#=VertexZ(surf, TriangleVertex(surf, tri, 1))
Vt1=NewVector(gx1-gx0, gy1-gy0, gz1-gz0)
gx2#=VertexX(surf, TriangleVertex(surf, tri, 2))
gy2#=VertexY(surf, TriangleVertex(surf, tri, 2))
gz2#=VertexZ(surf, TriangleVertex(surf, tri, 2))
Vt2=NewVector(gx2-gx0, gy2-gy0, gz2-gz0)
Vt3=NewVector(x-gx0, y-gy0, z-gz0)
;angles vectors (V*)
av102#=AngleVectors(Vt1, Vt2)
av302#=AngleVectors(Vt3, Vt2)
Dav#=av302/av102
;angles vectors (Tex*)
at102#=AngleVectors(Tex1, Tex2)
at302#=at102*Dav
;projection V*
l01#=LenVector(Vt1)
l02#=LenVector(Vt2)
l03#=LenVector(Vt3)
gx1#=l01*Cos(av102)
gy1#=l01*Sin(av102)
Line12=NewLine(l02, 0, gx1, gy1)
gx3#=l03*Cos(av302)
gy3#=l03*Sin(av302)
Line03=NewLine(0, 0, gx3, gy3)

LinesIntersect(Line12, Line03)
Line04=NewLine(0, 0, IntersectX(), IntersectY())
DL#=LenLine(Line03)/LenLine(Line04)

Line14=NewLine(gx1, gy1, IntersectX(), IntersectY())
DL2#=LenLine(Line14)/LenLine(Line12)

;projection Tex*
Line12=NewLine(u1, v1, u2, v2)
MulLine(Line12, DL2)
Line04=NewLine(u0, v0, LineX2(Line12), LineY2(Line12))
MulLine(Line04, DL)

PickU=LineX2(Line04)
PickV=LineY2(Line04)

;delete
Delete Each TVector
Delete Each TLine
End Function

Function NewLine(x1#, y1#, x2#, y2#)
g.TLine=New TLine
g\x=x1
g\y=y1
g\dx=x2-x1
g\dy=y2-y1
Return Handle(g)
End Function
Function DelLine(id)
g.TLine=Object.TLine(id)
If g=Null Return
Delete g
End Function
Function LenLine#(id)
g.TLine=Object.TLine(id)
If g=Null Return -1
Return Sqr(g\dx*g\dx+g\dy*g\dy)
End Function
Function MulLine(id, k#)
g.TLine=Object.TLine(id)
If g=Null Return
g\dx=g\dx*k
g\dy=g\dy*k
End Function
Function LineX2#(id)
g.TLine=Object.TLine(id)
If g=Null Return 0
Return g\x+g\dx
End Function
Function LineY2#(id)
g.TLine=Object.TLine(id)
If g=Null Return 0
Return g\y+g\dy
End Function
Function LineX1#(id)
g.TLine=Object.TLine(id)
If g=Null Return 0
Return g\x
End Function
Function LineY1#(id)
g.TLine=Object.TLine(id)
If g=Null Return 0
Return g\y
End Function
Function ResetLine(id,x1#, y1#, x2#, y2#)
g.TLine=Object.TLine(id)
If g=Null Return
g\x=x1
g\y=y1
g\dx=x2-x1
g\dy=y2-y1
End Function
Function LinesIntersect(id1, id2)
g1.TLine=Object.TLine(id1)
If g1=Null Return
g2.TLine=Object.TLine(id2)
If g2=Null Return
;line N1
a1#=g1\dy
b1#=-g1\dx
c1#=a1 * g1\x + b1 * g1\y
;line N2
a2#=g2\dy
b2#=-g2\dx
c2#=a2 * g2\x + b2 * g2\y
;calculate
dx#=c1*b2-c2*b1
dy#=a1*c2-a2*c1
d#=a1*b2-a2*b1
If d=0 Return 0
LOverlapX#=dx/d
LOverlapY#=dy/d
Return 1
End Function
Function IntersectX#()
Return LOverlapX
End Function
Function IntersectY#()
Return LOverlapY
End Function
;==================
;=============================
Function NewVector(x#, y#, z#)
v.TVector=New TVector
v\x=x
v\y=y
v\z=z
Return Handle(v)
End Function
Function DelVector(id)
v.Tvector=Object.Tvector(ID)
If v=Null Return
Delete v
End Function
Function LenVector#(ID)
v.Tvector=Object.Tvector(ID)
If v=Null Return 0
Return Sqr(v\x*v\x+v\y*v\y+v\z*v\z)
End Function
Function MulScalar#(id1, id2)
v1.Tvector=Object.Tvector(id1)
If v1=Null Return 0
v2.Tvector=Object.Tvector(id2)
If v2=Null Return 0
Return v1\x * v2\x + v1\y * v2\y + v1\z * v2\z
End Function
Function AngleVectors#(id1, id2)
v1.Tvector=Object.Tvector(id1)
If v1=Null Return 0
v2.Tvector=Object.Tvector(id2)
If v2=Null Return 0
Return ACos(MulScalar(id1, id2)/LenVector(id1)/LenVector(id2))
End Function
Function TurnVectorXY(id, angle#)
v.Tvector=Object.Tvector(ID)
If v=Null Return
cn#=Cos(angle)
sn#=-Sin(angle)
oldX#=v\x
oldY#=v\y
v\x=oldX * cn - oldY * sn
v\y=oldY * cn + oldX * sn
End Function
;===================

Function argb%(a%,r%=0,g%=0,b%=0) 
Return (a Shl 24) Or (r Shl 16) Or (g Shl 8) Or b 
End Function 

Function rgb%(r%,g%,b%) 
Return (r Shl 16) Or (g Shl 8) Or b 
End Function 

Function geta%(val%) 
Return (val Shr 24) 
End Function 
Function getr%(val%) 
Return (val Shr 16) And ($000000FF) 
End Function

Function getg%(val%) 
Return (val Shr 8) And ($000000FF) 
End Function 

Function getb%(val%) 
Return (val And $000000FF) 
End Function 



__________________
(Offline)
 
Ответить с цитированием
Старый 01.08.2006, 20:19   #26
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: b3d хелп или описание

А будет ли такой способ работать например при использовании двух слоев текстур? Например если я создам terrain в 3D World Studio и налажу два слоя текстур.

ЗЫ Сколько слоев текстур поддерживает blitz или модели b3d? (То при использовании больше 2 слоев исчезал мягкий переход между текстурами, тоесть просто накладывалась текстура как бы квадратом)
(Offline)
 
Ответить с цитированием
Старый 01.08.2006, 20:20   #27
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: b3d хелп или описание

А проще способы организовать подобное?

ЗЫ как то код заканчивается странно "Е [". Те там должно быть "Еnd function"? А после него какие то еще функции идут?
(Offline)
 
Ответить с цитированием
Старый 01.08.2006, 21:19   #28
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: b3d хелп или описание

Сообщение от Trilliput
А проще способы организовать подобное?

ЗЫ как то код заканчивается странно "Е [". Те там должно быть "Еnd function"? А после него какие то еще функции идут?
Исправил.
можешь упростить функцию.
GetBrushTexture - см эту команду

layer_t - слой текстуры. 0 - первый и тд
__________________
(Offline)
 
Ответить с цитированием
Старый 02.08.2006, 10:06   #29
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
Re: b3d хелп или описание

Фсего одна функция? А к чему весь остальной код? (Тяжело понимать свой код, а чужой и тем более)
(Offline)
 
Ответить с цитированием
Старый 02.08.2006, 18:17   #30
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: b3d хелп или описание

Тяжело понимать свой код
комментируй =)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описание раздела SBJoker iPhone 0 24.09.2009 23:53
описание lib_bt temned Прочие вопросы 3 02.01.2009 23:59
Описание Lib_sinerj rotor155 Основной форум 4 01.04.2007 15:52


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


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