forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   FAQ (http://forum.boolean.name/forumdisplay.php?f=15)
-   -   Вопросы по текстурам. (http://forum.boolean.name/showthread.php?t=14187)

Satan'scry 06.02.2011 16:16

Вопросы по текстурам.
 
У меня тут будут разные вопросы насчет текстур.
1) Как сделать бесшовные текстуры (точнее текстуры, подстраивающиеся под кубик например как в quake, cube)Т.е. когда рисуется куб, то текстура не растягивается на весь объект, а идет по ровным квадратам,например 32x32 там...
----

Leowey 06.02.2011 16:22

Ответ: Вопросы по текстурам.
 
ScaleTexture. Справку читаемъ.

Satan'scry 06.02.2011 16:24

Ответ: Вопросы по текстурам.
 
Спс кэп...
Я имею ввиду, чтобы все автоматом накладывалось...
КАк в ку, там по клеткам заполнялось

Leowey 06.02.2011 16:25

Ответ: Вопросы по текстурам.
 
Тебе чтоль функцию написать, а?

Satan'scry 06.02.2011 16:31

Ответ: Вопросы по текстурам.
 
Мне бы подсказали...
Можно алгоритм типа написать...ща попробую пока сам)

Nex 06.02.2011 16:58

Ответ: Вопросы по текстурам.
 
При наложении на кубик текстуры на каждой стороне кубика будет эта текстура.

Артем Валерьевич 06.02.2011 17:37

Ответ: Вопросы по текстурам.
 
я думаю Автомат за тебя ничего делать не будет.

Satan'scry 06.02.2011 19:32

Ответ: Вопросы по текстурам.
 
Вложений: 1
Где-то так должно быть...Может кто "Формулу" подбросит?):)

Raion 06.02.2011 19:37

Ответ: Вопросы по текстурам.
 
нужно использовать 3д редактор.

Satan'scry 06.02.2011 19:39

Ответ: Вопросы по текстурам.
 
Я "собираю" свой "движок" с нуля...Т.е. юзаю только примитивы, и расставляю...и редактор ща писать отдельный буду.Я делаю что-то типа Cube...=/

Mr_F_ 06.02.2011 20:05

Ответ: Вопросы по текстурам.
 
в играх типа quake геометрия строится т.н. брашами, твердотельной геометрией, созданной путём ограничения бесконечного объёма набором бесконечных плоскостей (о_0), ПРОЩЕ: есть плоскости, каждая из них делит бесконечное пространство на 2, таким образом можно создать объёмную фигуру, урезав плоскостями то, что вокруг неё.
Для рендера сей шняги нужны умные триангуляторы.
UV высчитываются исходя из позиций вертексов и нормалей плоскостей, с юзанием обычных треугольников могут получиться не такие.

зачем так делают:
- действительно проще моделить интерьеры, здания, ЮВ всегда правильные, никаких случайных дырок между трианглами и плоских поверхностей
- из-за того что всё сделано из бесконечных плоскостей, прекрасно умещается в BSP-tree, по нему можно очень быстро находить что попало в камеру, сортировать итд. не забудь это замутить если уж мутишь твердотельный редактор.

Satan'scry 06.02.2011 20:11

Ответ: Вопросы по текстурам.
 
Бугогашенька...
=)
Ну что ж, попробую сделать другой вид)
Может мне вместо кубов, юзать вертексы?
Над попробовать...=)

Satan'scry 06.02.2011 20:16

Просто вопрос, уже коллайд=)
 
Я тут что-то типа физики на время сделал.
Мне нун сделать, чтоб при соприкосновении с кубом, я нажимаю на ctrl и размер куба увеличивается=)
Раньше юзал GameMAker, там по объектам делилось и можна было делать
так
object.size+=1
А вот я написал код, и че мне делать=)Не юзается
---

If EntityCollided (user,BOXT) > 0 And KeyDown(SCCRCH)
cb.size=cb.size+1
EndIf

до этого кода идет


Function create_box(size,x#=0,y#=0,z#=0,txt)
b.cb= New cb
b\entity = CreateCube()
EntityType b\entity,BOXT
PositionEntity b\entity,x#,y#,z#
ScaleEntity b\entity,size,size,size
EntityTexture b\entity,txt
Return True
End Function

Function create_block(sizex,sizey,sizez,x#=0,y#=0,z#=0,txt)
b.cb2= New cb2
b\entity = CreateCube()
EntityType b\entity,BOXT
PositionEntity b\entity,x#,y#,z#
ScaleEntity b\entity,sizex,sizey,sizez
EntityTexture b\entity,txt
Return True
End Function

Посоветуйте че нить=(

--p.s.--
SCCRCH - это ctrl

Reks888 06.02.2011 21:20

Ответ: Вопросы по текстурам.
 
просто предположение
Цитата:

If EntityCollided (user,BOXT) > 0 And KeyDown(SCCRCH)
cb.size=cb.size+1
ScaleEntity cb\entity,cb.size,cb.size,cb.size
EndIf
авось поможет

Satan'scry 06.02.2011 22:02

Ответ: Вопросы по текстурам.
 
Цитата:

Сообщение от Reks888 (Сообщение 178134)
просто предположение

авось поможет

Хех, возможно=)
Завтра гляну )

Satan'scry 07.02.2011 11:56

Ответ: Вопросы по текстурам.
 
Сделал такую функцию
Код:

Function update_box()
If EntityCollided (user,BOXT) > 0 And KeyDown(SC1)
size=size+1
 ScaleEntity b\entity,size,size,size
EndIf
End Function

Пишет
Varible Must be Type и указывает на эту строчку
ScaleEntity b\entity,size,size,size

Хотя до этого прописан такой код
Код:

Function create_box(size,x#=0,y#=0,z#=0,txt)
 b.cb= New cb
 b\entity = CreateCube()
 EntityType b\entity,BOXT
 PositionEntity b\entity,x#,y#,z#
 ScaleEntity b\entity,size,size,size
 EntityTexture b\entity,txt
Return True
End Function

Function create_block(sizex,sizey,sizez,x#=0,y#=0,z#=0,txt)
 b2.cb2= New cb2
 b2\entity = CreateCube()
 EntityType b2\entity,BOXT
 PositionEntity b2\entity,x#,y#,z#
 ScaleEntity b2\entity,sizex,sizey,sizez
 EntityTexture b2\entity,txt
Return True
End Function

Что не так?=)

Nex 07.02.2011 13:03

Ответ: Вопросы по текстурам.
 
Наверно нужно вот так
Цитата:

Function update_box()
for b.cb = each cb
If EntityCollided (user,BOXT) > 0 And KeyDown(SC1)
size=size+1
ScaleEntity b\entity,size,size,size
EndIf
next
End Function

Satan'scry 07.02.2011 13:22

Ответ: Вопросы по текстурам.
 
Объекты просто исчезают, ПРИЧЕМ ВСЕ КУБЫ=(
Но все равно спс=)

Код:

Function update_box()
for b.cb = each cb
If EntityCollided (user,BOXT) > 0 And KeyHit(SC1)
size=size-0.01
ScaleEntity b\entity,size,size,size
EndIf
next
End Function

Более-менее работает, только теперь один объект это "чувствует"

RBK 07.02.2011 13:35

Ответ: Вопросы по текстурам.
 
Непонимание принципа работы типов вызывает :crazy:

Сначала ищем нужную запись, потом с ней работаем.
Код:

Function update_box()
local ent = EntityCollided (user,BOXT)

If ent > 0 And KeyHit(SC1)

  for b.cb = each cb
    if b\entity = ent then exit
  next

  size=size + 1
  ScaleEntity b\entity,size,size,size

EndIf
End Function


Satan'scry 07.02.2011 13:38

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

RBK 07.02.2011 14:03

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

  ...
  size#=size# + 0.001
  ScaleEntity b\entity,size#,size#,size#
  ...

Теперь будет увеличиваться медленно.

Satan'scry 07.02.2011 14:06

Ответ: Вопросы по текстурам.
 
Хех=)
Не работает, тоже самое

Код:

Graphics3D  0,0,32,1
SetBuffer BackBuffer()

Include "sckeyscan.bb"

Global user,camera,sky,lit
Global t1,t2,s1,s2



Const USERT=1
Const BOXT=2

Type cb
        Field entity
End Type
Type cb2
        Field entity
End Type


;------^PHYSICS^------
Const UP# = 0.7
Const GR# = 1
Const cj#=1

;------^TEXTURES^_____
t1=LoadTexture ("pack\standart\GF01.jpg")
t2=LoadTexture ("pack\standart\GG01.jpg")
s1=LoadTexture ("pack\standart\SK01.jpg")
s2=LoadTexture ("pack\standart\SK02.jpg")

;------^GAME^-----
Function create_user(x#,y#,z#)
               
    user=CreateSphere()
        k#=3
        ScaleEntity user,k#,k#,k#
        EntityRadius user,k#
        camera=CreateCamera(user)
        CameraRange camera,0.1,3000
        PositionEntity user,x#,y#,z#
        EntityType user,USERT

End Function

Function update_user()

    V#=0.5
        u#=70;
        TurnEntity camera,MouseYSpeed(),0,0
        TurnEntity user,0,-MouseXSpeed(),0
        If KeyDown(SCAKEY)=1 Then MoveEntity user,-V#,0,0
        If KeyDown(SCDKEY)=1 Then MoveEntity user,V#,0,0
        If KeyDown(SCWKEY)=1 Then MoveEntity user,0,0,+V#
        If KeyDown(SCSKEY)=1 Then MoveEntity user,0,0,-V#

        MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5
        If Abs(EntityPitch#(camera))>u# RotateEntity camera,u#*Sgn(EntityPitch#(camera)),0,0
       
       
    Collisions USERT,BOXT,2,2
       
        EntityBox  user,x#,y#,z#,k#+3,k#+16,k#+3
        ;---
    If EntityCollided (user,BOXT) <= 0
    TranslateEntity user,0,-UP#,0
EndIf

End Function

Function create_box(size#,x#=0,y#=0,z#=0,txt)
 b.cb=New cb
 b\entity= CreateCube()
 EntityType b\entity,BOXT
 PositionEntity b\entity,x#,y#,z#
  ScaleEntity b\entity,size,size,size
 EntityTexture b\entity,txt
Return True
End Function

Function create_block(sizex,sizey,sizez,x#=0,y#=0,z#=0,txt)
 b2.cb2= New cb2
 b2\entity = CreateCube()
 EntityType b2\entity,BOXT
 PositionEntity b2\entity,x#,y#,z#
 ScaleEntity b2\entity,sizex,sizey,sizez
 EntityTexture b2\entity,txt
Return True
End Function



Function create_skysphere(t)
  sky=CreateSphere(100,user)
  FlipMesh sky
  EntityTexture sky,t
  ScaleEntity sky,2000,2000,2000

End Function



Function create_w()
create_user(0,60,0)
create_box(5,0,10,0,t1)
create_box(15,10,140,10,t2)
create_box(10,10,0,0,t1)
create_block(30,3,30,0,-10,0,t2)
create_skysphere(s1)
End Function

Function update_skysphere()
  TurnEntity sky,0,0.01,0
End Function

Function update_light()
lit=CreateLight()
LightRange lit,2000
RotateEntity lit,270,0,0
End Function


Function update_box()
local ent = EntityCollided (user,BOXT)

If ent > 0 And KeyHit(SC1)

  for b.cb = each cb
    if b\entity = ent then exit
  Next

size#=size# + .001
  ScaleEntity b\entity,size#,size#,size#

EndIf
End Function


;------^CRETAEWORLD^-
create_w()
;------^PROCESS^-----
While Not KeyHit(1)=1
    update_skysphere()
    update_light()
        update_user()
        update_box()
        UpdateWorld()
        RenderWorld()
        Text 10,10,"xPos "+EntityX (user)
        Text 10,20,"yPos "+EntityY (user)
        Text 10,30,"zPos "+EntityZ (user)
        Text 10,40,"Render "+TrisRendered()
        Flip
Wend
;----------------------------
End

МБ ошибка во всем коде?

Satan'scry 10.02.2011 15:14

Ответ: Вопросы по текстурам.
 
Пишу редактор и столкнулся с проблемой.
Как сейвить путь к текстуре?
У меня прописано так
Код:

File=WriteFile(name$+".txt")
        For S.vcube=Each vcube
                WriteLine(File,S\t1)
                WriteInt(File,S\t2)
                WriteInt(File,S\t3)
                WriteInt(File,S\t4)
                WriteInt(File,S\t5)
                WriteInt(File,S\t6)
                WriteInt(File,S\x)
                WriteInt(File,S\y)
                WriteInt(File,S\z)
                WriteInt(File,S\sx)
                WriteInt(File,S\sy)
                WriteInt(File,S\sz)
                WriteInt(File,S\rx)
                WriteInt(File,S\ry)
                WriteInt(File,S\rz)
        Next
        CloseFile(File)

где S\t(NUM)=номеру текстуры по каждой стороне вертексного кубика

Reks888 10.02.2011 15:21

Ответ: Вопросы по текстурам.
 
Есть предположение что WriteInt пишет в файл ЧИСЛО, а S\t2 - СТРОКА.
Лечится использованием WriteString или WriteLine вместо инта

Satan'scry 10.02.2011 15:36

Ответ: Вопросы по текстурам.
 
Я сохраняю эту феню

"pack\standart\GG01.jpg"

не воркает х(

ПОМОГИТЕ =)

Reks888 10.02.2011 16:01

Ответ: Вопросы по текстурам.
 
File=WriteFile(name$+".txt")
For S.vcube=Each vcube
WriteString(File,S\t1)
WriteString(File,S\t2)
WriteString(File,S\t3)
...
Next
CloseFile(File)

Satan'scry 10.02.2011 16:19

Ответ: Вопросы по текстурам.
 
Я же сказал что не работает х(

LLI.T.A.L.K.E.R. 10.02.2011 16:30

Ответ: Вопросы по текстурам.
 
Лучше выкласть проэкт с bb файлами и инклудами, текстурами jpg чтобы тест был возможен. Иначе нам придётся заполнять эти файлы своими (или инклуды искать).

Своруют проэкт?
Ну исх. код то уже выставлен...

Satan'scry 10.02.2011 16:45

Ответ: Вопросы по текстурам.
 
Это старый - кривой код, лаги лаги там=)
Я уже другой написал...

Reks888 10.02.2011 16:54

Ответ: Вопросы по текстурам.
 
Прочитай вот это: http://forum.boolean.name/showthread.php?t=14187&page=2, и ещё раз задай свой вопрос. Я не понимаю что не так

Satan'scry 10.02.2011 17:19

Ответ: Вопросы по текстурам.
 
У меня вот что написано
Код:

Function SaveLevel(name$)
        File=WriteFile(name$+".txt")
        For S.vcube=Each vcube
                WriteString(File,S\t1)
                WriteString(File,S\t2)
                WriteString(File,S\t3)
                WriteString(File,S\t4)
                WriteString(File,S\t5)
                WriteString(File,S\t6)
                WriteInt(File,S\x)
                WriteInt(File,S\y)
                WriteInt(File,S\z)
                WriteInt(File,S\sx)
                WriteInt(File,S\sy)
                WriteInt(File,S\sz)
                WriteInt(File,S\rx)
                WriteInt(File,S\ry)
                WriteInt(File,S\rz)
        Next
        CloseFile(File)
End Function

и это в редакторе сохр левела
А это в игре при загрузке
Код:

Function LoadLevel(name$)
        Delete Each cb
        file=ReadFile(name$+".txt")
        While Not Eof(file)
                tt1=ReadString(file)
                tt2=ReadString(file)
                tt3=ReadString(file)
                tt4=ReadString(file)
                tt5=ReadString(file)
                tt6=ReadString(file)
                tx=ReadInt(file)
                ty=ReadInt(file)
                tz=ReadInt(file)
                tsx=ReadInt(file)
                tsy=ReadInt(file)
                tsz=ReadInt(file)
                trx=ReadInt(file)
                try=ReadInt(file)
                trz=ReadInt(file)
                vcube_create(tt1,tt2,tt3,tt4,tt5,tt6,tx,ty,tz,tsx,tsy,tsz,trx,try,trz)
        Wend
        CloseFile(file)
End Function

А в редакторе при создании куба такой код
Код:

createvcube("pack\standart\GG01.jpg","pack\standart\GG01.jpg","pack\standart\GG01.jpg","pack\standart\GG01.jpg","pack\standart\GG01.jpg","pack\standart\GG01.jpg",xx,yy,zz,10,5,10,0,0,0)

Reks888 10.02.2011 17:36

Ответ: Вопросы по текстурам.
 
Ничего сказать не могу, выглядит всё правильно

baton4ik 10.02.2011 19:50

Ответ: Вопросы по текстурам.
 
Satan'scry, ты уже второй раз, когда просят код, заявляешь, что он нечитабельный. Зачем тогда вообще вопросы задавать?

Я почти уверен, что ты сохраняешь не путь к текстуре а саму текстуру. Что у тебя хранится в S\t1, текстура? Создан переменную и записывай туда путь, её и сохраняй.

RBK 10.02.2011 19:57

Ответ: Вопросы по текстурам.
 
baton4ik меня опередил. Я полностью уверен, ты пишешь номер текстуры, а не путь.
Цитата:

где S\t(NUM)=номеру текстуры по каждой стороне вертексного кубика
Лучше создай новый тип для материала, далее используй номер материала для создания сторон.

Satan'scry 11.02.2011 14:00

Ответ: Вопросы по текстурам.
 
В том то и дело, что я путь сейвю=)
Ладно, попробую поковыряться

Satan'scry 11.02.2011 15:41

Ответ: Вопросы по текстурам.
 
Так, лан=)
Кто подскажет простую функцию прыжка?Ровного, плавного?
Биг Сенгз=)

baton4ik 11.02.2011 20:22

Ответ: Вопросы по текстурам.
 
Цитата:

Сообщение от Satan'scry (Сообщение 178604)
Так, лан=)
Кто подскажет простую функцию прыжка?Ровного, плавного?
Биг Сенгз=)

Гугл

Satan'scry 12.02.2011 17:21

Ответ: Вопросы по текстурам.
 
Хех, все, нашел, точнее догадался сам =)

Satan'scry 13.02.2011 14:47

Ответ: Вопросы по текстурам.
 
У меня вопрос, кто делал редактор уровней?У меня просьба будет^^
Может кто-то смогет выложить исходник...Я хочу глянуть конструкцию=)
Понять как сделать интерфейс и все такое...Лучше конечно 3д редактор=)

Reks888 13.02.2011 17:20

Ответ: Вопросы по текстурам.
 
на блицмаксе сойдет?

Satan'scry 13.02.2011 17:30

Ответ: Вопросы по текстурам.
 
Простите за такой нуб-вопрос=)
А Код различается?
Если да(Если оч-оч сильно), то ненадо=)

Reks888 13.02.2011 17:35

Ответ: Вопросы по текстурам.
 
На блице полно редакторов, тебе все таки лучше одного из них подождать

mr.DIMAS 13.02.2011 19:08

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

is.SarCasm 13.02.2011 21:10

Ответ: Вопросы по текстурам.
 
У мну редактор вроде есть, но он галимый и нечитабельный для обычных смертных. Что именно тебе нужно?

Nex 14.02.2011 08:06

Ответ: Вопросы по текстурам.
 
Цитата:

Сообщение от is.SarCasm (Сообщение 178824)
У мну редактор вроде есть, но он галимый и нечитабельный для обычных смертных. Что именно тебе нужно?

А ты чем то особенный?

Satan'scry 14.02.2011 16:03

Ответ: Вопросы по текстурам.
 
Мне нужно посмотреть конструкцию=)
Ну ладно, сам напишу=)


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

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