forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Вопрос-Ответ (для новичков) (http://forum.boolean.name/showthread.php?t=7886)

FireOwl 02.10.2011 15:51

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Павел (Сообщение 204049)
x по-мойму вроде вообще не аннимируется,

Анимируется. В семплах валяется модель дракона с несколькими анимациями.

Kudesnic 24.10.2011 14:47

Ответ: Вопрос-Ответ (для новичков)
 
Подскажите пожалуйста!
Как с помощью Блица узнать длительность музыкального трека (.мр3) не прослушивая его?

L-ee-X 24.10.2011 15:00

Ответ: Вопрос-Ответ (для новичков)
 
Вложений: 1
Цитата:

Сообщение от Kudesnic (Сообщение 206782)
Подскажите пожалуйста!
Как с помощью Блица узнать длительность музыкального трека (.мр3) не прослушивая его?

Сторонними библиотеками!!!
Вроде такой...

Kudesnic 24.10.2011 15:27

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от L-ee-X (Сообщение 206783)
Сторонними библиотеками!!!
Вроде такой...

Я это и предполагал. Благодарю! :)

Kudesnic 09.11.2011 19:53

Ответ: Вопрос-Ответ (для новичков)
 
Есть ли библиотека, которая убирает рамку виндоуса из программы? Если это невозможно, то как сделать, чтобы после нажатия крестика прога не закрывалась, а выполнялась какая-нибудь команда?

Nex 09.11.2011 20:01

Ответ: Вопрос-Ответ (для новичков)
 
Вложений: 1
Цитата:

Сообщение от Kudesnic (Сообщение 209052)
Если это невозможно, то как сделать, чтобы после нажатия крестика прога не закрывалась, а выполнялась какая-нибудь команда?

Вот.

Jupiter 26.11.2011 11:14

Ответ: Вопрос-Ответ (для новичков)
 
что такое IDE для Blitz3d и с чем его едят?. Нужен ли он вообще?
Visual Blitz , IDEal :dontknow:

Nex 26.11.2011 11:21

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Jupiter (Сообщение 211298)
что такое IDE для Blitz3d и с чем его едят?. Нужен ли он вообще?

Это то в чем ты пишешь код.

Jupiter 26.11.2011 13:15

Ответ: Вопрос-Ответ (для новичков)
 
Что дает Xors3d если подключить его к blitz3d кроме dx9? Зачем он вообще нужен?

Nerd 26.11.2011 13:59

Ответ: Вопрос-Ответ (для новичков)
 
А тебе этого мало?

Jupiter 26.11.2011 14:14

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Nerd96 (Сообщение 211310)
А тебе этого мало?

вообще не надо, и 7 за глаза... есть ли смысл его юзать.. в чем его плюсы?

Gector 26.11.2011 14:26

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Jupiter (Сообщение 211312)
вообще не надо, и 7 за глаза... есть ли смысл его юзать.. в чем его плюсы?

Шойдеры, и еще куча всего о чем я не знаю). Зависит от того что будешь делать. Коммерческий шутер нынче стыдно выпускать без хотя бы теней и красивой водички). Если ты чисто для себя то тебе хватит чего угодно.

dsd 26.11.2011 14:51

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Jupiter (Сообщение 211312)
вообще не надо, и 7 за глаза... есть ли смысл его юзать.. в чем его плюсы?

С хорсом можно бросить блитз3d и выучить язык получше используя при этом вполне знакомые команды для организации 3д пространства.

H@NON 26.11.2011 15:38

Ответ: Вопрос-Ответ (для новичков)
 
xors3D умнее

pepel 04.12.2011 13:28

Ответ: Вопрос-Ответ (для новичков)
 
подскажите плиз как использовать тип в типе. пример использования

St_AnGer 04.12.2011 14:22

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от pepel (Сообщение 212283)
подскажите плиз как использовать тип в типе. пример использования

Я плох в вопросах о типах. Но как то так наверно (синтаксис может быть неточным!):

Создаём типы:
Код:

Type cChild
    Field x, y
End Type

Type cParent
    Field child.cChild
End Type

Создаём функции объектов:
Код:

Function CreateParent.cParent()
    p.cParent = new cParent
          ...
    Return p
End Function

Function CreateChild(p.cParent)
    p\child.cChild = new cChild
          p\child\x = 100;
          p\child\y = 100;
End Function

Ну и создаём как обычно объекты:
Код:

parent.cParent = CreateParent()

CreateChild(parent)

к объектам дочернего типа обращаться как то так (например вывести текст с координатами):
Код:

Text 10, 10, parent\child\x
Text 10, 30, parent\child\y

Палками не бить, сильно не плеваться. Суть работы с дочерними типами (как это понимаю я, хотя моё понимание на 78% не корректно наверно) думаю донёс.

упд На основе этого примера лучше использовать в типе cParent массив элементов типа cChild, иначе смысл отпадает в дочернем типе.

pepel 04.12.2011 19:25

Ответ: Вопрос-Ответ (для новичков)
 
ладно лучше массивом сделаю чето сложночитаемо совсем

Nex 31.12.2011 02:22

Ответ: Вопрос-Ответ (для новичков)
 
Как автоматически расставить текстурные координаты у 2д (партиклы) прямоугольников и окружностей? Я че то уже запарился. Читал что нужно брать длину нормали делить@умножать, но не вкурил . :(

LLI.T.A.L.K.E.R. 24.01.2012 20:57

Ответ: Вопрос-Ответ (для новичков)
 
Не залежался ли у кого Texture Splatting (исходник)?
http://blitzbasic.com/Community/posts.php?topic=52663
А то на:
http://bond357.free.fr/main/forums/viewtopic.php?id=3
пароль просит.

Про Xors3D.. Привлекают эти темы :cool: :
http://area.xors3d.com/forums/viewto...&t=547&start=0
http://area.xors3d.com/forums/viewtopic.php?f=5&t=489

Нашёл: http://www.blitzbasic.com/codearcs/c....php?code=2620 (хоть и другой)

Nerd 24.01.2012 23:04

Ответ: Вопрос-Ответ (для новичков)
 
http://bond357.free.fr/down/TextureSplattingDemo.zip же

LLI.T.A.L.K.E.R. 24.01.2012 23:14

Ответ: Вопрос-Ответ (для новичков)
 
Там demo - исходника нет. Исходник под запороленной ссылкой.

Texture Splatting on Meshterrain
http://www.blitzbasic.com/codearcs/c....php?code=2620

Поясню алгоритм:
медиа-часть: рисуется альфа текстура в тех местах где нужен покрас на меше.. и т.д. и т.п.
код: создаются 5 мешей (для 5 слоёв покрасок), но самое важное - все 5 слоёв не копируют один и тот же меш, а как бы вырезаются те участи по их альфе текстурам.


Я тоже по началу думал что опять-25 мешей terrain грузить. Потом
включил wireframe 1 и включил отображение только 2-го и зелёного слоёв.

Скоро на Blitz3D будет свой Oblivion.

Nex 25.08.2012 20:41

Ответ: Вопрос-Ответ (для новичков)
 
Как делают волны на воде и их обрезание (уменьшение детализации меша) в зависимости от расстояния?

tirarex 25.08.2012 21:47

Ответ: Вопрос-Ответ (для новичков)
 
не проще текстурой делать а так можно двигать вертексы

Nex 26.08.2012 12:58

Ответ: Вопрос-Ответ (для новичков)
 
Неужели никто не знает?

dsd 26.08.2012 14:15

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Nex (Сообщение 237241)
Как делают волны на воде и их обрезание (уменьшение детализации меша) в зависимости от расстояния?

Делаешь квадратную равномерную сетку. Потом сжимаешь возле камеры ее так чтобы она слегка была шире поля обзора, а вдали нааоборот увеличиваешь расстояние между вершинами, тоже самое для рядов идущих перпендикулярно линии взгляда, те что возле камеры меньше расстояние, а те что вдали больше расстояние.

а потом анимировать можно как то так:

Код:

Function GrimMagicWater(meshid)
PointEntity light,camera
PositionEntity light,225*Sin(MilliSecs()/30),15,225*Cos(MilliSecs()/30)
PositionEntity watermesh,EntityX(camera,1),0,EntityZ(camera,1)
RotateEntity watermesh,0,EntityYaw(camera,1)-45,0
If EntityY(camera,1)<1 Then PositionEntity camera,EntityX(camera,1),1,EntityZ(camera,1),1
ScaleTexture watertex,1+Sin(MilliSecs()/100)/10,1+Cos(MilliSecs()/50)/10



waveheight#=8
horizwave#=6
Noiseamplitude#=0.2
wavelength#=10 ; меньшее значение означает большую длину
wavehorizlength#=35
speed#=1
time#=MilliSecs()*speed

mesh=meshid
meshsurf=GetSurface(mesh,1)
qvert=CountVertices(meshsurf)
;теперь магия
For i=0 To qvert-1
x000#=plane#(i,0)
y000#=plane#(i,2)
z000#=0
TFormPoint x000,z000,y000,mesh,0
x00#=TFormedX()
y00#=TFormedZ()

z01#=waveheight*Cos(time/wavelength+x00*wavelength/3)+horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)+Noiseamplitude*Sin(noise#(i)+time/4)
x01#=x00-waveheight*Cos(time/wavelength+x00*wavelength/3)+Noiseamplitude*Cos(noise#(i)+time/4)
y01#=y00-horizwave*Sin(time/wavehorizlength#+y00*wavelength/5)+Noiseamplitude*Sin(noise#(i)+time/4)
TFormPoint x01,z01,y01,0,mesh
VertexCoords meshsurf,i,TFormedX(),TFormedY(),TFormedZ()
VertexTexCoords meshsurf,i,x00/25,y00/25

Next
UpdateNormals mesh


End Function

x00=cubedata#(i-1,0)
y00=cubedata#(i-1,1)

тут сохранены позиции точек поверхности воды до деформации.

Nerd 28.08.2012 01:38

Ответ: Вопрос-Ответ (для новичков)
 
У кого-нибудь сохранился враппер bass?
А то везде 404.

tirarex 28.08.2012 09:34

Ответ: Вопрос-Ответ (для новичков)
 
Вложений: 1
держи

LLI.T.A.L.K.E.R. 30.08.2012 00:09

Ответ: Вопрос-Ответ (для новичков)
 
http://www.blitzbasic.com/toolbox/toolbox.php?tool=207

Download Blitz_Bass_Studio: http://www.abrexxes.huntingsoftware....ass_studio.zip Version 1.7.1 (23.03.2009)

микрофон правда херово bass обрабатывает

Nex 31.08.2012 20:58

Ответ: Вопрос-Ответ (для новичков)
 
Вложений: 1
Подскажите как вот так сделать.
Вложение 17542
А именно есть платформы и кубики. Если кубик на платформе, то она перекрашивается в красный, а если нет, то в зеленый. Делаю без коллизий, проверяю на дистанцию. Проблема в том что у меня вечно тупняки с перебором объектов. На данный момент все это дело работает только для одного кубика. :(
---
Сделал через лайн пик, но тоже самое выходит
Код:

For d.TDepot = Each TDepot
        m\p = LinePick (m\x,m\y,m\z,0,-0.5,0)
                If m\p = d\ent Then
                        d\is123 = 1
                Else
                        d\is123 = 0 // тут вся борода. надо как то по другому, но не знаю как. :)
                EndIf
Next


pepel 31.08.2012 23:06

Ответ: Вопрос-Ответ (для новичков)
 
функция пересечения квадрата и прямоугольника тебе в помощь

PHP код:

Function cross_square_and_rect(x1#,y1#,x2#,y2#,x#,y#,side#) 

    
w#=x1-x2 
    
h#=y1-y2 
    
centerx#=x1-w/2 
    
centery#=y1-h/2 

    
If Abs(centerx x) <= (Abs(w) + side) / And Abs(centery y) <= (Abs(h) + side) / Return True 
     
     
End 
Function 


Nex 31.08.2012 23:19

Ответ: Вопрос-Ответ (для новичков)
 
Я просил помочь с перебором объектов, а не с пересечением.

dsd 31.08.2012 23:59

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Nex (Сообщение 237720)
Я просил помочь с перебором объектов, а не с пересечением.

Я думаю что в поле куда записан хэндл квадратика во всех элементах коллекции прописано одно и тоже значение. Потому и работает только для одного.

Dzirt 01.09.2012 00:54

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от pepel (Сообщение 237719)
функция пересечения квадрата и прямоугольника тебе в помощь

PHP код:

Function cross_square_and_rect(x1#,y1#,x2#,y2#,x#,y#,side#) 

    
w#=x1-x2 
    
h#=y1-y2 
    
centerx#=x1-w/2 
    
centery#=y1-h/2 

    
If Abs(centerx x) <= (Abs(w) + side) / And Abs(centery y) <= (Abs(h) + side) / Return True 
     
     
End 
Function 


Так будет куда шустрее если хочешь проверить коллизии:

Код:

Function CollisionDetect(x1,y1,w1,h1,x2,y2,w2,h2)
                If x1 > (x2+w2) Or (x1+w1) < x2 Then Return False
                If y1 > (y2+h2) Or (y1+h1) < y2 Then Return False
        Return True
End Function


Nerd 08.09.2012 17:11

Ответ: Вопрос-Ответ (для новичков)
 
Пытаюсь по-быстрому напилить easing.
Набросал простую функцию:
Код:

Function curve_f#(t#,typ) ;Где t от 0 до 1
  Select typ
        Case 0 ;Linear
                Return t
        Case 1 ;In
                Return 1-Cos(t*90)
        Case 2 ;Out
                Return Sin(t*90)
        Case 3 ;Cubic
                Return curve_f(t*2,1)*0.5
  End Select
End Function

Но мне нужна более сложная вещь.
Я решил делать графики из четырёх точек, как-то так:
Код:

Type curve_q_t ;Quad-pointed curve
        Field p.curve_q_t_p[4]
End Type

Type curve_q_t_p ;Point
        Field x#,y#
        Field typ ;см. curve_f
End Type

Function curve_q#(q.curve_q_t,t#)
        For i = 1 To 3
                If q\p[i]\x>=t Then       
                        bc# = curve_f(  (t-q\p[i-1]\x)/(q\p[i]\x-q\p[i-1]\x) , q\p[i-1]\typ) ;Извините за говнокод
                        Return q\p[i-1]\y+(q\p[i]\y-q\p[i-1]\y)*bc
                       
                End If
        Next
End Function


Function curve_q_Create.curve_q_t(p1y#,p1t,p2x#,p2y#,p2t,p3x#,p3y#,p3t,p4y#,p4t )
        q.curve_q_t = New curve_q_t
                q\p[0] = New curve_q_t_p
                        q\p[0]\y = p1y
                        q\p[0]\typ = p1t
                q\p[1] = New curve_q_t_p
                        q\p[1]\x = p2x
                        q\p[1]\y = p2y
                        q\p[1]\typ = p2t
                q\p[2] = New curve_q_t_p
                        q\p[2]\x = p3x
                        q\p[2]\y = p3y
                        q\p[2]\typ = p3t
                q\p[3] = New curve_q_t_p
                        q\p[3]\x = 1
                        q\p[3]\y = p4y
                        q\p[3]\typ = p4t
        Return q
End Function

Но оно даёт неточный результат.
Нет ли готовых решений?

Okay 08.09.2012 23:19

Ответ: Вопрос-Ответ (для новичков)
 
пытался сделать поворот оьъекта мышью как в шутерах. Не получилось. Поварачивал, не поварачивал, объект двигается потом не правильно

Кирпи4 09.09.2012 19:11

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Okay (Сообщение 238079)
пытался сделать поворот оьъекта мышью как в шутерах. Не получилось. Поварачивал, не поварачивал, объект двигается потом не правильно

Не может быть такого, значит ты что-то не то вертишь. Скинь код. (только КОД ПОВОРОТА, а не over 9000 строк всей программы)

PREy 08.10.2012 22:37

Ответ: Вопрос-Ответ (для новичков)
 
Загрузил модель формата b3d в свой проект после чего фпс сильно упал, начались сильные тормоза. полигонов в модели всего 1482. Пользовался B3dPipeline. Подскажите как правильно загружать модели в Blitz.:dontknow:

Wegox 08.10.2012 23:16

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от PREy (Сообщение 239909)
Загрузил модель формата b3d в свой проект после чего фпс сильно упал, начались сильные тормоза. полигонов в модели всего 1482. Пользовался B3dPipeline. Подскажите как правильно загружать модели в Blitz.:dontknow:

Так:)
Код:

Graphics3D 640,480
SetBuffer BackBuffer()

camera=CreateCamera() 
PositionEntity camera,0,20,-100

light=CreateLight()
RotateEntity light,90,0,0

t=LoadMesh("tic.3ds") 

While Not KeyDown(1)

RenderWorld 

Flip
Wend 
End


Okay 09.10.2012 00:06

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от PREy (Сообщение 239909)
Загрузил модель формата b3d в свой проект после чего фпс сильно упал, начались сильные тормоза. полигонов в модели всего 1482. Пользовался B3dPipeline. Подскажите как правильно загружать модели в Blitz.:dontknow:

FLIP скорее всего забыл

Nex 09.10.2012 02:24

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от PREy (Сообщение 239909)
Загрузил модель формата b3d в свой проект после чего фпс сильно упал, начались сильные тормоза. полигонов в модели всего 1482. Пользовался B3dPipeline. Подскажите как правильно загружать модели в Blitz.:dontknow:

Возможно загружаешь модель в цикле. Надо загружать до Repeat или до While.

tirarex 09.10.2012 09:21

Ответ: Вопрос-Ответ (для новичков)
 
я 3дс юзаю поэтому не знаю но возможно у тебя в модельке оч много объектов

PREy 09.10.2012 15:01

Ответ: Вопрос-Ответ (для новичков)
 
Nex прав. Я оформил загрузку модели как функцию и добавил еще несколько команд, а сама функция находилась в главном цикле. Спасибо за помощь :)

No09 23.10.2013 10:27

Ответ: Вопрос-Ответ (для новичков)
 
У меня проблема с аниммироваными объектами. Вот например: загузил через LoadAnimMesh модель дверей. Нормально сделал анимацию. Потом загрузил управление от первого лица и вот тут я и встретил проблему. Если приблизиться камерой ко двери и отвернуть её где-то на 45 градусов, то дверь просто исчезает, а если вернуть камеру в исходное положение, то дверь появляется. Я заметил такой прикол, что если в 3д редакторе сдвинуть меш немного дальше от центра координат и экспортировать в игру, то этот баг исчезает, но появился еще один такой самый: если открыть дверь и посмотреть на нее с другой стороны, то она опять начинает исчезать и появляться Как можно убрать этот баг?

tormoz 23.10.2013 12:54

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от No09 (Сообщение 269228)
Как можно убрать этот баг?

Перед экспортом отцентрировать модель

No09 12.04.2014 16:00

Ответ: Вопрос-Ответ (для новичков)
 
Вот еще проблемка. Я много думал, как можно реализовать видеокамеру, которая видит привидения? Например у нас есть две камеры и один куб. Как сделать, чтобы одна камера видела куб, а для второй он был невидимым? Я уже пробовал что-то мутить с туманом, с дистанцией видимости, но желаемого результата я не могу добиться.

KCEPOKC 12.04.2014 21:16

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от No09 (Сообщение 278837)
Вот еще проблемка. Я много думал, как можно реализовать видеокамеру, которая видит привидения? Например у нас есть две камеры и один куб. Как сделать, чтобы одна камера видела куб, а для второй он был невидимым? Я уже пробовал что-то мутить с туманом, с дистанцией видимости, но желаемого результата я не могу добиться.

Глянь пример "tex_render" в корне блитца. А чтобы реализовать скрытие обджектов на камерах просто поиграйся с HideEntity.

upd. Я не знаю, как ты это хочешь реализовать, но если изображение будет выводится на некий телек, то пример тебе в руки.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot