forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Alpha в Блитце (http://forum.boolean.name/showthread.php?t=5029)

Maxxx.!!!. 14.11.2007 23:03

Alpha в Блитце
 
Так вот. Есть, например, plane, на него наложена текстура. Хочу применить к plane'у EntityAlpha 0.8, например, и тогда плейн начинает натурально "мигать". Попробовал убрать EntityAlpha 0.8 и выставить при загрузке текстуры SPTex=LoadTexture("SPTex.jpg",2), тогда плейн становится прозрачным насколько-то, но регулировать эту прозрачность я не могу. Зато в Pipelene в настройках материала я могу менять Alpha как угодно от 0 до 100 и ничего не мигает. Что сделать, чтобы в блитце тоже можно было бы так делать. Заранее благодарен.

Crystal 15.11.2007 00:42

Re: Alpha в Блитце
 
меняй альфу на скоко угодно 0 - 0.5 - 0.05 - 0.005 и тд.

а мигает может потому что там у тебя не один плейн а несколько, с чемто пересекается.

также мигалова могут быть из-за установленной дистанции видемости камеры.

лучше клади сюда исходняк, а мы посмотрим что там у тебя мигает.

Alex_Noc 15.11.2007 17:00

Re: Alpha в Блитце
 
Если тебе чистая альфа-маска нужна то в максе на 1 слой ложишь тексу маски а на второй дифуз ( основная) и будут тебе счастья

IGR 15.11.2007 18:08

Re: Alpha в Блитце
 
Цитата:

Есть, например, plane, на него наложена текстура. Хочу применить к plane'у EntityAlpha 0.8, например, и тогда плейн начинает натурально "мигать".
а без альфы что не мигает !!
если нет, то вариант Blitzerg"а совсем не ришение проблемы !!

H@NON 15.11.2007 18:15

Re: Alpha в Блитце
 
сделай cameraRange 1, n, если у тебя первый параметр был меньше 1.

IGR 15.11.2007 18:32

Re: Alpha в Блитце
 
Цитата:

сделай cameraRange 1, n, если у тебя первый параметр был меньше 1.
:-D
это какие масштабы мира должны быть, что бы земля была на растоянии меньше 1 !!

H@NON 15.11.2007 18:45

Re: Alpha в Блитце
 
факт остаеться фактом. При значении Near меньше единицы, случаються артефакты, типо пропадания поликов, мигания объектов с альфой, и тд.

Maxxx.!!!. 15.11.2007 21:52

Re: Alpha в Блитце
 
В общем:

Plane пересекается со сферой. Камеру я ставил CameraRange CAM,1,900, т.е. на 1. Вторая цифра - тоже в норме. Но все-равно - мигает. Я одного не понимаю, почему в PipeLine тогда все работает?

H@NON 15.11.2007 23:06

Re: Alpha в Блитце
 
А у тебя случайно там не 2 плейна? может это ордер шалит?.

Maxxx.!!!. 15.11.2007 23:30

Re: Alpha в Блитце
 
Цитата:

Сообщение от H@NON
А у тебя случайно там не 2 плейна? может это ордер шалит?.

Точно один. Да и раньше я тоже с этим сталкивался... Т.е. всегда, когда EnitityAlpha делаю в блитце - такая лажа получается.

HolyDel 15.11.2007 23:41

Re: Alpha в Блитце
 
При значении Near меньше единицы, случаються артефакты, типо пропадания поликов, мигания объектов с альфой, и тд.

Far/Near - должно быть в разумных пределах.

Maxxx.!!!. 16.11.2007 11:58

Re: Alpha в Блитце
 
Цитата:

Сообщение от HolyDel
Far/Near - должно быть в разумных пределах.

Это я настроил - не помогает.

IGR 16.11.2007 17:39

Re: Alpha в Блитце
 
давай код !! ;)

Maxxx.!!!. 16.11.2007 18:08

Re: Alpha в Блитце
 
Цитата:

Сообщение от IGR
давай код !! ;)

А толку-то? Код как код. Может мне кто напишет примерчик, где плейн с текстурой и с альфой - но работает. А то надо весь исходник кидать и медиа еще...

Alex_Noc 18.11.2007 11:43

Re: Alpha в Блитце
 
Есть кстати вариант устранения этой проблемы но не факт :mda: кароч попробуй свою тексу в gyu формат записать где прозрачность (не основного места с альфой на тексе ) поставь 80% а на основных (где надо чтоб было плностью прозрачным) 0% вроде должно помоч. (Это в фотошопе надо делать :( )

Maxxx.!!!. 18.11.2007 12:10

Re: Alpha в Блитце
 
Цитата:

Сообщение от Alex_Noc
Есть кстати вариант устранения этой проблемы

Спасибо! Только мне все же легче в PipeLine выставить альфу, а потом экспортнуть - тогда все работает. Только почему в Блитце нельзя это сделать - я не понимаю.:dontknow:

Raiter 18.11.2007 13:24

Re: Alpha в Блитце
 
Страннно. И почему у меня всё работает? :-)

[blitz]
Graphics3D 1024,768,0,1
SetBuffer BackBuffer()

Plane = CreatePlane()
Tex = LoadTexture("panels.jpg")
EntityTexture Plane,Tex
EntityAlpha Plane,0.5

Player = CreateSphere()
EntityColor Player,255,0,0
Camera = CreateCamera(Player)
PositionEntity Camera,0,5,-10

Light = CreateLight()
TurnEntity Light,45,45,0

Repeat

If KeyDown(17) Then MoveEntity Player,0,0,.1
If KeyDown(31) Then MoveEntity Player,0,0,-.1

If KeyDown(203) Then TurnEntity Player,0,1,0
If KeyDown(205) Then TurnEntity Player,0,-1,0
RenderWorld()
Flip()

Until KeyDown(1)
[/blitz]

Наверное у тебя тама не "код как код" ;)

Maxxx.!!!. 18.11.2007 14:23

Re: Alpha в Блитце
 
Хм... Это код работает... Ничего не пойму...

Raiter 18.11.2007 18:39

Re: Alpha в Блитце
 
Скозали ж те: дафай сюда код ;)

Maxxx.!!!. 19.11.2007 11:34

Re: Alpha в Блитце
 
;Ãëàâíîå
Graphics3D 800,600,32,0;èíèöèàëèçàöèÿ ãðàôèêè
;Graphics3D 1024,768,32,1;èíèöèàëèçàöèÿ ãðàôèêè
SetBuffer BackBuffer();óñòàíîâêà áóôåðà
;Êîíåö-Ãëàâíîå


;Ïåðåìåííûå
Global PL
Global PL_speed#
Global PL_x_pos#
Global PL_y_pos#
Global PL_z_pos#
Global CAM
Global G#=-0.98

Global MaP,SS,SP,SM1,SM1Tr,EK,EKt,EKTr,WAT
Global ambR=200,ambG=200,ambB=200
Global clsR=74,clsG=56,clsB=29
Global Tim$,Tim10
Global LighT

;Êîíñòàíòû
Const COLL_PL=1
Const COLL_MAP=2
Const UPS=75;îáíîâëåíèÿ â ñåêóíäó (äëÿ FPS)

Function InitPL(x#,y#,z#)
PL=CreateSphere (6);ñîçäàåèì ñôåðó-èãðîêà ñ 6-þ ñåãìåíòàìè, ðàçìåð 1-1-1
PositionEntity PL,x#,y#,z#;ñòàâèì íà ìåñòî
ScaleEntity PL,0.5,0.5,0.5
EntityRadius PL,1;ðàäèóñ ñòîëêíîâåíèÿ
EntityType PL,COLL_PL;òèï êîëëèçèè äëÿ èãðîêà
CAM=CreateCamera(PL);ñîçäàåì êàìåðó, äî÷åðíþþ ê èãðîêó
;CameraRange CAM,1,900

PositionEntity CAM,0,0.0,0
End Function
Function InitWorld()
MaP=LoadMesh ("Arena1.b3d")
EntityType MaP,COLL_MAP
LighT=CreateLight ()
PositionEntity LighT,-15,150,0

AmbientLight ambR,ambG,ambB;îêðóæàþùèé ñâåò

CameraClsColor CAM,clsR,clsG,clsB;öâåò ôîíà
SS=LoadMesh("SS.b3d");çàãðóçêà ñôåðû ñ íåáîì
PositionEntity SS,0,0,0;óñòàíàâëèâàåì íà íîëè
RotateEntity SS,0,0,90;ïîâîðà÷èâàåì íàáîê

SP=LoadMesh ("SP.b3d");çàãðóçêà îáëàêîâ
RotateEntity SP,180,0,0;ïîâîðîò
PositionEntity SP,0,30,0;óñòàíàâëèâàåì âûñîòó îáëàêîâ

SM1=LoadSprite ("Moln1.bmp");çàãðóçêà ìîëíèè
ScaleSprite SM1,5,5;ìàñøòàáèðóåì
PositionEntity SM1,0,-200,0;ñêðûâàåì ñ ãëàç äîëîé
EntityFX SM1,1+8

EK=LoadMesh ("EK.b3d");çàãðóçêà ýêðàíà
PositionEntity EK,0.725,9.802,32.31;ñòàâèì ýêðàí íà ìåñòî
EKt=CreateTexture (512,256,256);ñîçäàåì òåêñòóðó

WAT=LoadMesh("WT.b3d");ãðóçèì âîäó
PositionEntity WAT,0,-1,0;ñòàâèì âîäó íà ìåñòî


End Function
Function UpdatePL()

TranslateEntity PL,0,G#,0;ãðàâèòàöèÿ


u#=80;ïðåäåëüíûé óãîë
TurnEntity CAM,MouseYSpeed(),0,0
TurnEntity PL,0,-MouseXSpeed(),0

If KeyDown(17) Then MoveEntity Pl,0,0,0.2
If KeyDown(31) Then MoveEntity Pl,0,0,-0.2
If KeyDown(30) Then MoveEntity Pl,-0.2,0,0
If KeyDown(32) Then MoveEntity Pl,0.2,0,0

MoveMouse 1024/2,768/2
mx=MouseXSpeed ()*0.5
my=MouseYSpeed ()*0.5

MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5
If Abs(EntityPitch#(CAM))>u# RotateEntity CAM,u#*Sgn(EntityPitch#(CAM)),0,0




End Function
Function Debug()
Text 0,0,"ÊîóíòÊîëë: "+CountCollisions(PL)+"---"+TrisRendered()+"----"+Tim10
End Function
Function UpdateWRD()
TurnEntity SS,0.15,0,0;êðóòèì íåáî-ñôåðó
TurnEntity SP,0,-0.1,0;êðóòèì îáëà÷êà-ïëåéí
TurnEntity WAT,0,0.05,0;âðàùàåì âîäó

;ìîëíèÿ - âûñêàêèâàåò êàæäóþ 5-þ ñåêóíäó ïî Tim10, íà 6-é - ñêðûâàåòñÿ
If Tim10<>5 Then SM1Tr=0
If Tim10=5 And SM1Tr=0
PositionEntity SM1,Rnd(EntityX#(CAM)-1,EntityX#(CAM)+1),7,Rnd(EntityZ#(CAM)+10,EntityZ# (CAM)+25):SM1Tr=1
AmbientLight ambR+10,ambG+50,ambB+10;ìåíÿåì îñâåùåíèå
CameraClsColor CAM,clsR,clsG+55,clsB;öâåò ôîíà
End If
If Tim10=6 Then PositionEntity SM1,0,-200,0: AmbientLight ambR,ambG,ambB:CameraClsColor CAM,clsR,clsG,clsB;óáèðàåì ìîëíèþ

;ñêðèíøîò êàæäóþ 3-þ ñåêóíäó ïî Tim10
If Tim10<>3 Then EKTr=0
If Tim10=3 And EKTr=0
;EKt=CreateTexture (512,256,256);ñîçäàåì òåêñòóðó
MoveEntity cam,0,5,0;ïåðåìåùàåì êàìåðó, ÷òîáû âñå áûëî âèäíî
CameraViewport cam,0,0,512,256;óñòàíàâëèâàåì ðàçìåð êàìåðû
RenderWorld;ðåíäåðèì ìèð
CopyRect 0,0,512,256,0,0,BackBuffer(),TextureBuffer(EKt);êî ïèðóåì â òåêñó ñêðèí
EntityFX EK,1
EntityTexture EK,EKt;ëåïèì íà ýêðàí
MoveEntity cam,0,-5,0;âîçâðàùàåì êàìåðó íà ìåñòî
CameraViewport CAM,0,0,800,600;íîðìàëüíûé ðàçìåð êàìåðû
EKTr=1
EndIf

End Function


InitPL(0,30,0)
InitWorld()

;êîëëèçèè
Collisions COLL_PL,COLL_MAP,2,3

;ñ÷åò÷èê FPS
period=1000/UPS;äëÿ îãðàíè÷èòåëÿ
time=MilliSecs()-period; FPS

;Öèêë
Repeat
Repeat
elapsed=MilliSecs()-time
Until elapsed
ticks=elapsed/period
tween#=Float(elapsed Mod period)/Float(period)

For k=1 To ticks
time=time+period
If KeyHit(1) End


;ô-èè öèêëà

;âðåìÿ
If Tim$<>CurrentTime$() Then Tim$=CurrentTime$():Tim10=Tim10+1;åñëè, òî +1 ñåêóíäà
If Tim10=10 Then Tim10=0;Tim10 - îáíóëÿåòñÿ ïðè 9 ñåêóíäàõ.


UpdatePL()
UpdateWRD()

UpdateWorld
Next
RenderWorld tween



;âûâîä 2D

Debug()


Flip;îáíîâëåíèå ýêðàíà


Forever







;Êîíåö Ïðîãðàììû
End

IGR 19.11.2007 16:17

Re: Alpha в Блитце
 
Maxxx.!!!, коментарии лишнее !! ;)

Maxxx.!!!. 19.11.2007 16:39

Re: Alpha в Блитце
 
Цитата:

Сообщение от IGR
Maxxx.!!!, коментарии лишнее !! ;)

Я думаю, что и сам код лишний. Что толку то?

Raiter 19.11.2007 18:35

Re: Alpha в Блитце
 
Я что-то не заметил тама плоскости и альфы к ней ;) И каметны жгут! Мешают читать текст :)

Maxxx.!!!. 19.11.2007 18:39

Re: Alpha в Блитце
 
Цитата:

Сообщение от Raiter
Я что-то не заметил тама плоскости и альфы к ней ;) И каметны жгут! Мешают читать текст :)

Э... Это я забыл добавить... Ну, в общем, это надо добавить в InitWORD(). Если добавить туда, то она будет при запуске мигать. Все b3d модели сделаны и затекстурены в PipeLine.

IGR 19.11.2007 19:33

Re: Alpha в Блитце
 
Цитата:

Э... Это я забыл добавить...
Maxxx.!!!., жжош !!
о чем тема тогда ?? ;)
показуй как альфу делаеш !!

Maxxx.!!!. 19.11.2007 19:57

Re: Alpha в Блитце
 
Цитата:

Сообщение от IGR
Maxxx.!!!., жжош !!

Жжу.

Да я уже в PipeLine эту проблему решил.
А так:

Pl=CreatePlane()
PlTex=LoadTexture("tex.jpg")
EntityTexture Pl,PlTex
EntityAlpha Pl,0.5

IGR 19.11.2007 20:14

Re: Alpha в Блитце
 
Цитата:

А так:

Pl=CreatePlane()
PlTex=LoadTexture("tex.jpg")
EntityTexture Pl,PlTex
EntityAlpha Pl,0.5
ты так делаеш ??
недолжно мигать наХ !!
ты или 2 раза эту процедуру проделеваеш или ... эммм !!
а меш что с пиплайна тож в блиц грузиш одновременно с этим ??
может эт они пересекаются !!

Maxxx.!!!. 19.11.2007 21:15

Re: Alpha в Блитце
 
Цитата:

Сообщение от IGR
ты так делаеш ??
недолжно мигать наХ !!
ты или 2 раза эту процедуру проделеваеш или ... эммм !!
а меш что с пиплайна тож в блиц грузиш одновременно с этим ??
может эт они пересекаются !!

Да, пересекаются. Я его гружу раньше.

ЛысыЙ_Чук-Иванчук 20.11.2007 00:18

Re: Alpha в Блитце
 
А ты возми за основу тот код где не мегает!:)

Maxxx.!!!. 20.11.2007 12:34

Re: Alpha в Блитце
 
Цитата:

Сообщение от ЛысыЙ_Чук-Иванчук
А ты возми за основу тот код где не мегает!:)


А там также альфа ставится. Насколько я понял, дело в b3d, сделанных в PipeLine - ибо без них работает.

Raiter 20.11.2007 16:18

Re: Alpha в Блитце
 
Гы :) Никогда не думал, что в пиплайне мона моделить и текстурить:
Цитата:

Все b3d модели сделаны и затекстурены в PipeLine.
Цитата:

Насколько я понял, дело в b3d, сделанных в PipeLine - ибо без них работает.
пиплайн - это плагин к максу :) он лиш производит экспорт модели в формат б3д ;)

Maxxx.!!!. 20.11.2007 17:54

Re: Alpha в Блитце
 
Цитата:

Сообщение от Raiter
Гы :) Никогда не думал, что в пиплайне мона моделить и текстурить:

В 3D MAX'е 7 - если тебе от этого легче.



пиплайн - это плагин к максу :) он лиш производит экспорт модели в формат б3д ;)[/quote]

Я в курсе. Но, насколько я помню, он может не только меши хранить, но и источники освещения и т.д.


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

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