forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Xors3D (http://forum.boolean.name/showthread.php?t=6180)

Knightmare 07.10.2009 13:54

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

Nex 08.10.2009 10:55

Ответ: Xors3D
 
А если у меня затайленая 2-3 текстурами модель, то как тогда на модель накладывать шейдер?

Mr_F_ 08.10.2009 12:22

Ответ: Xors3D
 
спокойно
смотри примеры

Mhyhr 13.10.2009 11:39

Ответ: Xors3D -Туманыч
 
Вложений: 1
Собственно я наверно уже надоел товарищу Knightmar'у, но всё-же:-D

Заметил условный баг тумана. Пример смотрим в аттаче.

Сначала попробуйте, подлететь к центру(перекрестию) а затем полетайте вдоль дорожек, в некоторых местах мы входим в "облако"(границу), видимо из за не-обновления позиции "тумана" в след за камерой.

Пишу тут потому что не уверен, что это не моей кривости рук дело:dontknow:

Mr_F_ 13.10.2009 15:48

Ответ: Xors3D
 
с туманом тоже видел баг, говорил найту уже

CRASHER 16.10.2009 07:15

Ответ: Xors3D
 
Вот небольшой баг, который сложно им считать, но всеже уязвимость колизии на лицо. Сфера ,падающая вниз, проскакивает через куб.
Попробовал обойти его, к удивлению больше наткнутся на подобное не смог
Код:

; Xors3D header file
Include "C:\Programs\Blitz3D\userlibs\xors3d.bb"

xGraphics3D 800,600,32,0
xSetBuffer xBackBuffer()

pxCreateWorld(0, "сможешь угадать?)))")
pxSetGravity(0, -10, 0)

;;;Creat

camera=xCreateCamera ()
xPositionEntity (camera,0,5,-20)
xRotateEntity camera,0,0,0

light=xCreateLight()
xRotateEntity light,90,0,0

plane=xCreateCube()
;ground_tex=xLoadTexture("terrain1.jpg")
;xScaleTexture (ground_tex,0.05,0.05)
xPositionEntity (plane,0,-1,0)
xEntityTexture plane,ground_tex
xEntityType plane,1
xScaleEntity(plane,500,0.1,500)

Cube1=xCreateCube()
xPositionEntity(Cube1,10,5,0)
xScaleEntity(Cube1,5,5,5)
xEntityType(Cube1,1)

Cube=xCreatesphere()
xPositionEntity(Cube,20,45,0)
xScaleEntity(Cube,5,5,5)
xEntityRadius (Cube,5)
xEntityType(Cube,2)

Global jump,chislo1,inval,Kdown,V#=0.1

CreateUser(0,camera,0,8,-110,0)

xCollisions(2,1,2,2)

;_____________________________________________________________________________________________________
While Not xKeyHit(1)

If xEntityCollided(Cube,1)
        x=xCollisionX(Cube,0)
        ;Stop
Else
        xMoveEntity(Cube,0,-0.01,0)
EndIf

pxRenderPhysic(140,1)

mys#=xMouseYSpeed()
mxs#=xMouseXSpeed()

;IntervalKey()
Gravitate()

Update_user(camera,mxs,mys)

xUpdateWorld()
xRenderWorld

xText 10,10, "chislo1="+chislo1
xText 10,20, "XSurface="+XSurface
xText 10,30, "Xset="+set

xFlip

Wend
;-----------------------------------------------------------------------------------------------------
End

Type User
        Field Model,camera
        Field Body,Body2,mash
        Field Pivot,Pivot2
        Field Shift#
End Type

Type GravEnt
        Field a#
        Field v#
        Field GravEntity,GravEntity2
End Type

Function Update_user(camera,mxs#,mys#)
For Us.User = Each User
        If mys>30 Then mys=30
        If mys<-30 Then mys=-30
        If mxs>30 Then mxs=30
        If mxs<-30 Then mxs=-30
        xTurnEntity camera,mys/5,0,0
        xTurnEntity Us\Pivot,0,-mxs/5,0,1

        If xKeyDown(32)=True Then xMoveEntity Us\Pivot,V,0,0
        If xKeyDown(30)=True Then xMoveEntity Us\Pivot,-V,0,0
        If xKeyDown(31)=True Then xMoveEntity Us\Pivot,0,0,-V
        If xKeyDown(17)=True Then xMoveEntity Us\Pivot,0,0,V

        If xKeyDown(42)=True
                V=V+0.0002
       
        Else
                V=V-0.0001
        EndIf
       
        If V>0.1 V=0.1
        If V<0.03 V=0.03
Next
        u#=80
        xMoveMouse xGraphicsWidth()*0.5,xGraphicsHeight()*0.5
        xHidePointer
        If Abs(xEntityPitch#(camera))>u# xRotateEntity camera,(u#)*Sgn(xEntityPitch#(camera)),xEntityYaw(camera),0

End Function

Function CreateUser(ent,camera, pos_x, pos_y, pos_z,h#)
        Us.User = New User       
        Us\Pivot=xCreateSphere(5)
        Us\Pivot2=xCreateSphere(5)
    If ent>0
                Us\Model=ent
        Else
                Us\Model=xCreateCube()
        EndIf
        NewGravEnt(Us\Pivot)
        Us\camera=camera
        xPositionEntity Us\Model, pos_x,pos_y-h,pos_z
        xPositionEntity Us\Pivot, pos_x,pos_y,pos_z
        xPositionEntity Us\camera, pos_x,pos_y+h+6,pos_z
        xEntityParent(Us\Model,Us\Pivot)
        xEntityParent(Us\camera,Us\Pivot)
        ;Us\mash = xCreateCube()
        ;xScaleEntity(Us\mash,0.05,0.05,0.05)
       
End Function

Function NewGravEnt(entity)
        grv.GravEnt= New GravEnt
        grv\GravEntity=entity
        xScaleEntity(grv\GravEntity,2,2,2)
        xEntityType grv\GravEntity,2
        xEntityRadius(grv\GravEntity,2)
        ;xHideEntity(entity)
End Function

Function Gravitate()
        For grv.GravEnt= Each GravEnt
               
                If Not xEntityCollided (grv\GravEntity,1)
                                grv\a=grv\a-0.0001                               
                                grv\v=grv\v+grv\a/200
                                If grv\v>0.1 grv\v=0.1
                Else
                        xLinePick(xEntityX(grv\GravEntity),xEntityY(grv\GravEntity),xEntityZ(grv\GravEntity),0,-2,0)
                        If xPickedEntity()<>0
                                grv\a=0
                                grv\v=0
                        Else
                                grv\a=grv\a-0.0001                               
                                grv\v=grv\v+grv\a/200
                                If grv\v>0.1 grv\v=0.1
                        EndIf
                        If xKeyHit (57)                               
                                grv\v=0.02
                                grv\a=0.01
                        EndIf
                EndIf
                xMoveEntity grv\GravEntity,0,grv\v,0
                ;If xEntityCollided(grv\GravEntity,1) x=xCollisionX(grv\GravEntity,CountCollisions (grv\GravEntity)-1)
        Next
End Function


Mhyhr 17.10.2009 12:12

Ответ: Xors3D
 
Возможно я что то не доглядел(хорошо бы с медией выложить), но зачем смешивать (x) & (px) колизии?

CRASHER 17.10.2009 20:12

Ответ: Xors3D
 
pinqin, а чего смешного?))) ты запускал?
Если да то еще запусти. Я пару функций не доложил, уже поправил :)

Mhyhr 17.10.2009 20:49

Ответ: Xors3D
 

Цитата:

pinqin, а чего смешного?))) ты запускал?
1) смешивать-смешного
Я был серьЁзен...)))
2) Не запускал по загадочным обстоятельствам...:p

Fatalix3d 26.10.2009 16:58

Ответ: Xors3D
 
Вложений: 2
У меня такой вопрос при экспортировании моделей с альфа каналом (трава, листва деревьев) наблюдается такой эффект, трава полу-прозрачна смотрите скриншот. Загружал текстурированную модель через pipiline и текстурил через xtextureentity но эффект остается(. В Blitz3d все пучком такой эффект только в Xors3d.

Knightmare 26.10.2009 17:01

Ответ: Xors3D
 
Это один из минусов того примера использования PSSM который мы вкладывали. В идеале тени надо накладывать на каждый объект по отдельности, а не на всю сцену сразу. В принципе подобные артефакты можно свести к минимуму допиливанием шейдера.

Si-Jey 22.01.2010 21:55

Ответ: Xors3D
 
А как в Xors3D проиграть видео-файл,в обычном ББ реализуется просто, а при переводе команд под ксорс видео не отображается.
Разьясните пожалуйста.

Mr_F_ 23.01.2010 14:53

Ответ: Xors3D
 
никак

Reizel 14.02.2010 08:43

Ответ: Xors3D
 
Решил поюзать сее творение на С++. Возник вопрос. Сначала надо создать WinApi шными средствами окно а потом уже подставлять его HWND в xSetRenderWindow? если не так то будьте добры, объясните...

IGR 14.02.2010 12:26

Ответ: Xors3D
 
создавай консольное приложение !!


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

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