Gracias Gracias:  25
Página 41 de 45 PrimerPrimer ... 31373839404142434445 ÚltimoÚltimo
Resultados 601 al 615 de 669

Tema: BlitzBasic 3D

  1. #601
    Senior Member Avatar de Damian1985
    Fecha de ingreso
    Nov 2006
    Ubicación
    Ceuta
    Mensajes
    106

    Wink Re: BlitzBasic 3D

    Hay alguna forma de crar un minimapa como este:
    BlitzBasic 3D-minimapa.jpg
    No se me ocurre ninguna idea la verdad

  2. #602
    Miembro Nuevo
    Fecha de ingreso
    Oct 2008
    Ubicación
    Terrassa
    Mensajes
    13

    Re: BlitzBasic 3D

    Yo lo tengo en tareas pendientes, tengo que hacer un minimapa con los coches, supongo que los tiros irán como adaptar el juego a todas las resoluciones, veras yo lo tengo todo diseñado para una resolución de 1280x800, pués en todas las coordenadas hago lo siguiente:

    Global puntero=LoadImage ("osd/puntero.bmp")
    MaskImage puntero,0,0,0
    ximage=ImageWidth(puntero) : yimage=ImageHeight(puntero)
    ResizeImage puntero,(ximage*gráficosX)/1280,(yimage*gráficosY)/800

    DrawImage marconombre,(920*gráficosx/1280),(220*gráficosY/800)

    Todo esto cada vez que sale una coordenada que influye directamente con la resolución siendo gráficosX, gráficosY la resolución seleccionada.

  3. #603
    Senior Member Avatar de Damian1985
    Fecha de ingreso
    Nov 2006
    Ubicación
    Ceuta
    Mensajes
    106

    Re: BlitzBasic 3D

    No lo que me quieres decir, pero en tu caso si es un juego 3d puedes utilizar el comando cameraproject o algo así se llama para hacer el mapa, yo mi juego es en 2d y a mi no me vale, gracias de todos modos

    Por cierto ¿no sabrás alguna forma de empaquetar los archivos? Para que nadie los pueda modificar yo encontré el PakMaker empaqueta de puta madre pero el fallo que no es capaz de cargar los ficheros con el comando include.
    Última edición por Damian1985; 25-01-2011 a las 23:59

  4. #604
    Miembro Nuevo
    Fecha de ingreso
    Oct 2008
    Ubicación
    Terrassa
    Mensajes
    13

    Re: BlitzBasic 3D

    Nueva versión disponible, V0.53 que incluye:

    -Soporte para pad analógico/digital.
    -Mejorado el menú opciones.
    -Añadido compuestos blandos/duros.
    -Añadida opción de cambio manual/automatico.
    -Mejoras notables en el OSD.
    -Calculo de vueltas con el combustible restante.

    Descarga--> http://www.racerphysics.com/download...hysics0.53.rar
    Miniaturas adjuntadas Miniaturas adjuntadas BlitzBasic 3D-menuopciones.jpg   BlitzBasic 3D-osdnuevo.jpg  
    Última edición por 3dpoder; 09-03-2012 a las 11:52

  5. #605
    Senior Member Avatar de Yue
    Fecha de ingreso
    May 2008
    Ubicación
    Bogotá
    Mensajes
    634

    Re: BlitzBasic 3D

    Falco en hora buena se ve muy bien.

    Puedes mejorar el cielo haciendo un cubico, ya que se ven la unión de las caras de los cielos, no recuerdo bien debes aplicar unos flag a las texturas.
    Creo que hace falta sombras.

    Un saludo.
    "No son ni estrellas ni ídolos, son solo gente común que quiere hacer historia"

  6. #606
    Senior Member Avatar de Yue
    Fecha de ingreso
    May 2008
    Ubicación
    Bogotá
    Mensajes
    634

    Re: BlitzBasic 3D

    Cita Iniciado por Damian1985 Ver mensaje
    No lo que me quieres decir, pero en tu caso si es un juego 3d puedes utilizar el comando cameraproject o algo así se llama para hacer el mapa, yo mi juego es en 2d y a mi no me vale, gracias de todos modos

    Por cierto ¿no sabrás alguna forma de empaquetar los archivos? Para que nadie los pueda modificar yo encontré el PakMaker empaqueta de puta madre pero el fallo que no es capaz de cargar los ficheros con el comando include.
    Usa el PackMachine te permite cifrar datos de hostia, es una lib free.
    "No son ni estrellas ni ídolos, son solo gente común que quiere hacer historia"

  7. #607
    Senior Member Avatar de Yue
    Fecha de ingreso
    May 2008
    Ubicación
    Bogotá
    Mensajes
    634

    Re: BlitzBasic 3D

    Falco sobre el cambio de resoluciones donde se mueven las imágenes, usa como partida la mitad de la pantalla tanto en altura como en anchura, por lo tanto al cambiar la resolución no se vera afectado.

    por ejemplo:

    Código:
    DrawImage Imagen,GraphicsWidht()/2-200,GraphicsHeight()/2 +200
    Al realizar esto el cambio de resolución no afecta los objetos que uses en el menú.
    Última edición por Yue; 07-02-2011 a las 03:08
    "No son ni estrellas ni ídolos, son solo gente común que quiere hacer historia"

  8. #608
    Miembro Nuevo
    Fecha de ingreso
    Oct 2008
    Ubicación
    Terrassa
    Mensajes
    13

    Re: BlitzBasic 3D

    Gracias Blitz, en cuanto al tema de las resoluciones no tengo ningún problema con el 2d, usé en su día una simple regla de tres, con resize image y drawimage y me va perfecto, el único problemas es el 3d, el menú de introducción los textos son entidades 3d, para así poder hacer los efectos de girar las letras, y cuando pasa el ratón por encima se iluminan y caminan hacia adelante, ahí esta el problema uso un simple recuadro de coordenadas X,Y para detectar la posición del ratón, pero cuando cambia el aspect ratio de 16:10 (que uso por defecto) a otro las letras se desplazan un poco hacia abajo por lo tanto se activan cuando el ratón pasa ligeramente por encima de lo deseado.

  9. #609
    Senior Member Avatar de Yue
    Fecha de ingreso
    May 2008
    Ubicación
    Bogotá
    Mensajes
    634

    Thumbs up Re: BlitzBasic 3D

    Bueno aquí pongo un código bastante interesante como crear el efecto blur.
    Código:
    InitGraphics(1024,1024)
    
    Global Light = CreateLight()
    
    Global Camera = CreateCamera()
    PositionEntity Camera,0,1,-5
    CameraRange Camera,.001,100
    
    CreatePlane()
    
    Local Cube = CreateCube()
    PositionEntity Cube,0,1,0
    RotateEntity Cube,30,40,0
    
    Local Overlay = CreateQuad(1,1,-1,Camera)
    PositionEntity Overlay,0,0,.5
    EntityAlpha Overlay,.8
    
    Local Texture = CreateTexture(1024,1024,1+16+32)
    EntityTexture Overlay,Texture
    
    LockBuffer TextureBuffer(Texture)
    For y = 0 To TextureWidth(Texture)-1
    	For x = 0 To TextureHeight(Texture)-1
    		WritePixelFast x,y,0,TextureBuffer(Texture)
    	Next
    Next
    UnlockBuffer TextureBuffer(Texture)
    
    RenderTexture(Texture)
    
    While Not KeyDown(1)
    	
    	TurnEntity Cube,.5,1,.5
    	
    	If KeyDown(200) TranslateEntity Camera,0,0,.1
    		If KeyDown(208) TranslateEntity Camera,0,0,-.1
    			If KeyDown(203) TranslateEntity Camera,-.1,0,0
    				If KeyDown(205) TranslateEntity Camera,.1,0,0
    					
    					UpdateWorld
    					
    					RenderTexture(Texture)
    					
    					Flip
    				Wend
    				End
    				
    Function RenderTexture(texture)
    	RenderWorld
    	CopyRect 0,0,1024,1024,0,0,FrontBuffer(),TextureBuffer(texture)
    End Function
    
    Function InitGraphics(w = 1024, h = 768,title$="Iris3D",exit_message$="")
    	Graphics3D w, h, 32, 2
    	SetBuffer BackBuffer()
    	SeedRnd MilliSecs()
    	
    	If exit_message <> ""
    		AppTitle title,exit_message
    	Else
    		AppTitle title
    	EndIf
    End Function
    
    Function CreateQuad(width#,height#,order%=-1,parent%=False)
    	Local v0,v1,v2,v3
    	Local Point,Surface
    	
    	If Not parent = False
    		Point = CreateMesh(parent)
    	Else
    		Point = CreateMesh()
    	EndIf
    	
    	If order <> 0
    		EntityOrder Point,order
    	EndIf
    	
    	EntityFX Point,1
    	
    	Surface = CreateSurface(Point)
    	
    	v0=AddVertex(Surface,-(width*.5),(height*.5),0,0,0)
    	v1=AddVertex(Surface,(width*.5),(height*.5),0,1,0)
    	v2=AddVertex(Surface,-(width*.5),-(height*.5),0,0,1)
    	v3=AddVertex(Surface,(width*.5),-(height*.5),0,1,1)
    	
    	AddTriangle(Surface,v0,v1,v2)
    	AddTriangle(Surface,v1,v3,v2)
    	
    	Return Point
    End Function
    Un saludo.
    "No son ni estrellas ni ídolos, son solo gente común que quiere hacer historia"

  10. #610
    Expulsado
    Fecha de ingreso
    Dec 2010
    Ubicación
    En matrix
    Mensajes
    1,681

    Re: BlitzBasic 3D

    muy bueno el código para hacer blur. Ahora estoy intentando comprenderlo del todo para poder variar la cantidad de blur. Gracias

    Ya me di cuenta,jeje, variando el entityalpha del ente overlay se consigue variar el blur
    Última edición por aprendiz; 09-02-2011 a las 16:18

  11. #611
    Miembro Nuevo
    Fecha de ingreso
    Jan 2011
    Mensajes
    1

    Re: BlitzBasic 3D

    hola!!estaba mirando un código de blitz para leer pixeles y cuando utilizo el comando readpixelfast me pone en un mensaje "memory acces violation". Que puede ser?. Gracias

  12. #612
    Senior Member Avatar de Yue
    Fecha de ingreso
    May 2008
    Ubicación
    Bogotá
    Mensajes
    634

    Re: BlitzBasic 3D

    ]Hola!! Aprendiz, me alegra que te haya gustado el código.

    Ahora el siguiente fragmento de código es una función que detecta la posición del modo gráfico especificado, tanto en altura, como anchura y su respectiva profundidad.

    Código:
    Function BuscarMG(Ancho%,Alto%,Profundidad%)
    	Local IterModes
    	For IterModes=CountGfxModes3D() To 1 Step -1 ;It's more likely that searches would prefer higher - end resolutions.
    		If (GfxModeWidth(IterModes)=Width)*(GfxModeHeight(IterModes)=Height)*(GfxModeDepth(IterModes)=Depth) Then Return IterModes
    		If (GfxModeWidth(IterModes)<Width) Then Return False
    	Next
    	Return False
    End Function
    
    Local Modo_Gráfico = BuscarMG(800,600,32)
    
    print Modo_Gráfico()
    
    waitkey()
    En mi caso retorna un 11, es la posición en la tarjeta gráfica donde se encuentra el modo gráfico, esto puedo variar de computadora a computadora, por ejemplo en otros puede dar un 20 o un 30, esto se usa cuando se escanean los modos gráficos soportados por la tarjeta gráfica y este valor se toma como partida para mostrar las opciones disponibles en una lista dinámica para que el jugador lo cambie a su gusto.

    Código:
    If (GfxModeWidth(IterModes)<Width) Then Return False
    Esta parte se usa para que salte los modos de 16, 24 de profundidad, si desea que detecte estos modos puede anular esta línea de código.

    un saludo.
    "No son ni estrellas ni ídolos, son solo gente común que quiere hacer historia"

  13. #613
    Senior Member Avatar de Yue
    Fecha de ingreso
    May 2008
    Ubicación
    Bogotá
    Mensajes
    634

    Wink Re: BlitzBasic 3D

    Continuando con otro código, este es la base de como hacer sombras volumetricas.

    Código:
    Graphics3D 1024, 768, 32, 2
    SetBuffer BackBuffer()
    
    ;Globs
    Dim Edge#(65000, 7)
    
    ;Camera
    Cam = CreateCamera()
    
    ;Caster
    Cube = CreateSphere()
    PositionEntity Cube, 0, 0, 7
    
    ;Light
    Light = CreateLight()
    PositionEntity Light, 3, 3, 7
    PointEntity Light, Cube
    
    While Not KeyHit(1)
    	TurnEntity Cube, 1, .5, 1.5
    	vol = CreateVolume(Cube, Light)
    	RenderWorld
    	FreeEntity vol
    	Flip
    Wend
    End
    
    Function CreateVolume(model, light, volume_lenght = 1000000)
    VolumeMesh = CreateMesh()
    VolumeSurface = CreateSurface(VolumeMesh)
    EntityAlpha VolumeMesh, .5
    EntityColor VolumeMesh, 255, 0, 0
    EntityFX VolumeMesh, 1
    light_x# = EntityX(light)
    light_y# = EntityY(light)
    light_z# = EntityZ(light)
    For n = 1 To CountSurfaces(model)
    	surf = GetSurface(model, n)
    	dwNumFaces = CountTriangles(surf) - 1
    	For v = 0 To dwNumFaces
    		vert0 = TriangleVertex(surf, v, 0)
    		vert1 = TriangleVertex(surf, v, 1)
    		vert2 = TriangleVertex(surf, v, 2)
    		TFormPoint VertexX(surf, vert0), VertexY(surf, vert0), VertexZ(surf, vert0), model, 0
    		v1_x# = TFormedX()
    		v1_y# = TFormedY()
    		v1_z# = TFormedZ()
    		TFormPoint VertexX(surf, vert1), VertexY(surf, vert1), VertexZ(surf, vert1), model, 0
    		v2_x# = TFormedX()
    		v2_y# = TFormedY()
    		v2_z# = TFormedZ()
    		TFormPoint VertexX(surf, vert2), VertexY(surf, vert2), VertexZ(surf, vert2), model, 0
    		v3_x# = TFormedX()
    		v3_y# = TFormedY()
    		v3_z# = TFormedZ()
    		aa_x# = v3_x# - v2_x#
    		aa_y# = v3_y# - v2_y#
    		aa_z# = v3_z# - v2_z#
    		bb_x# = v2_x# - v1_x#
    		bb_y# = v2_y# - v1_y#
    		bb_z# = v2_z# - v1_z#
    		norm_x# = aa_y# * bb_z# - aa_z# * bb_y#
    		norm_y# = aa_z# * bb_x# - aa_x# * bb_z#
    		norm_z# = aa_x# * bb_y# - aa_y# * bb_x#
    		normlight_x# = (v1_x# + v2_x# + v3_x#) / 3 - light_x#
    		normlight_y# = (v1_y# + v2_y# + v3_y#) / 3 - light_y#
    		normlight_z# = (v1_z# + v2_z# + v3_z#) / 3 - light_z#
    		If (norm_x# * normlight_x# + norm_y# * normlight_y# + norm_z# * normlight_z#) * (1.0 / Float(Sqr(norm_x# * norm_x# + norm_y# * norm_y# + norm_z# * norm_z#))) * (1.0 / Float(Sqr(normlight_x# * normlight_x# + normlight_y# * normlight_y# + normlight_z# * normlight_z#))) => 0 Then
    			Edge(CNTFront, 0) = surf
    			Edge(CNTFront, 1) = tri
    			Edge(CNTFront, 2) = v1_x#
    			Edge(CNTFront, 3) = v1_y#
    			Edge(CNTFront, 4) = v1_z#
    			Edge(CNTFront, 5) = v2_x#
    			Edge(CNTFront, 6) = v2_y#
    			Edge(CNTFront, 7) = v2_z#
    			CNTFront = CNTFront + 1
    			Edge(CNTFront, 0) = surf
    			Edge(CNTFront, 1) = tri
    			Edge(CNTFront, 2) = v2_x#
    			Edge(CNTFront, 3) = v2_y#
    			Edge(CNTFront, 4) = v2_z#
    			Edge(CNTFront, 5) = v3_x#
    			Edge(CNTFront, 6) = v3_y#
    			Edge(CNTFront, 7) = v3_z#
    			CNTFront = CNTFront + 1
    			Edge(CNTFront, 0) = surf
    			Edge(CNTFront, 1) = tri
    			Edge(CNTFront, 2) = v3_x#
    			Edge(CNTFront, 3) = v3_y#
    			Edge(CNTFront, 4) = v3_z#
    			Edge(CNTFront, 5) = v1_x#
    			Edge(CNTFront, 6) = v1_y#
    			Edge(CNTFront, 7) = v1_z#
    			CNTFront = CNTFront + 1
    		EndIf
    	Next
    Next
    For a = 0 To CNTFront
    	If Edge(a, 0) > 0 Then
    		Diverso = True
    		p0_x# = Edge(a, 2)
    		p0_y# = Edge(a, 3)
    		p0_z# = Edge(a, 4)
    		p1_x# = Edge(a, 5)
    		p1_y# = Edge(a, 6)
    		p1_z# = Edge(a, 7)
    		For b = a + 1 To CNTFront
    			p0_2_x# = Edge(b, 2)
    			p0_2_y# = Edge(b, 3)
    			p0_2_z# = Edge(b, 4)
    			p1_2_x# = Edge(b, 5)
    			p1_2_y# = Edge(b, 6)
    			p1_2_z# = Edge(b, 7)
    			If Edge(b, 0) > 0 Then
    				If (p0_x# = p0_2_x# And p0_y# = p0_2_y# And p0_z# = p0_2_z# And p1_x# = p1_2_x# And p1_y# = p1_2_y# And p1_z# = p1_2_z#) = False Then
    					If p0_x# = p1_2_x# And p0_y# = p1_2_y# And p0_z# = p1_2_z# And p1_x# = p0_2_x# And p1_y# = p0_2_y# And p1_z# = p0_2_z# Then
    						Edge(a, 0) = surf = 0
    						Edge(b, 0) = surf = 0
    						Diverso = False
    						Exit
    					EndIf
    				EndIf
    			EndIf
    		Next
    		If Diverso Then
    			pe0_x# = p0_x# - light_x#
    			pe0_y# = p0_y# - light_y#
    			pe0_z# = p0_z# - light_z#
    			do# = 1.0 / Float(Sqr(pe0_x# * pe0_x# + pe0_y# * pe0_y# + pe0_z# * pe0_z#))
    			pe0_x# = pe0_x# * do# * volume_lenght + p0_x#
    			pe0_y# = pe0_y# * do# * volume_lenght + p0_y#
    			pe0_z# = pe0_z# * do# * volume_lenght + p0_z#
    			pe1_x# = (p1_x# - light_x#) * volume_lenght + p1_x#
    			pe1_y# = (p1_y# - light_y#) * volume_lenght + p1_y#
    			pe1_z# = (p1_z# - light_z#) * volume_lenght + p1_z#
    			va = AddVertex(VolumeSurface, p0_x#, p0_y#, p0_z#)
    			vb = AddVertex(VolumeSurface, pe1_x#, pe1_y#, pe1_z#)
    			AddTriangle(VolumeSurface, va, AddVertex(VolumeSurface, pe0_x#, pe0_y#, pe0_z#), vb)
    			AddTriangle(VolumeSurface, va, vb, AddVertex(VolumeSurface, p1_x#, p1_y#, p1_z#))
    			Edge(a, 0) = 0
    		EndIf
    	EndIf
    Next
    Return VolumeMesh
    End Function
    "No son ni estrellas ni ídolos, son solo gente común que quiere hacer historia"

  14. #614
    Senior Member Avatar de Yue
    Fecha de ingreso
    May 2008
    Ubicación
    Bogotá
    Mensajes
    634

    Re: BlitzBasic 3D

    Y con este finalizamos hoy: EFECTO GLOW.

    Código:
    Graphics3D 640,480,32,2
    SetBuffer BackBuffer()
    
    Global camera=CreateCamera()
    MoveEntity camera,3,3,0
    RotateEntity camera,30,30,0
    
    light=CreateLight()
    
    Global cube=CreateSphere()
    PositionEntity cube,0,0,5
    tex0=CreateTexture(300,300)
    SetBuffer TextureBuffer(tex0)
    ClsColor 255,255,255
    Cls
    SeedRnd(MilliSecs())
    For k=1 To 50
    	Color Rand(256),Rand(256),Rand(256)
    	Rect Rand(600),Rand(600),Rand(600),Rand(600)
    Next
    EntityTexture cube,tex0
    SetBuffer BackBuffer()
    
    s=1
    Global sizex=640/s
    Global sizey=480/s
    Global glowtexture=CreateTexture (384,384,256)
    Global sp=CreateSprite(camera)
    MoveEntity sp,-.25,-0.06,1.18
    EntityAlpha sp,.32
    ScaleTexture glowtexture,GraphicsWidth()/sizex,GraphicsHeight()/sizey
    EntityTexture sp,glowtexture
    TextureBlend glowtexture, 5
    While Not KeyDown( 1 )
    	TurnEntity cube,0.5,0.5,0.5
    	CameraViewport camera,0,0,sizex,sizey
    	RenderWorld
    	CopyRect 0,0,sizex,sizey,0,0,BackBuffer(),TextureBuffer(glowtexture)
    	CameraViewport camera,0,0,GraphicsWidth(),GraphicsHeight()
    	
    	RenderWorld
    	Flip
    Wend
    
    End
    EFECTO BLUR FX

    Código:
    Const texsize=1024, fx=7, o =-1
    
    Graphics3D 800,600,32
    
    cam=CreateCamera()
    PositionEntity cam, 0,0,-6
    RotateEntity CreateLight(), 45,0,0
    
    cube=CreateCube()
    EntityColor cube, 255,128,0
    cone1=CreateCone(20)
    EntityColor cone1,0,255,255
    PositionEntity cone1,-4,0,0
    cone2=CreateCone(20)
    EntityColor cone2,0,255,0
    PositionEntity cone2,4,0,0
    p=CreatePivot()
    sph=CreateSphere(20, p)
    PositionEntity sph, 0,0,-4
    
    Select fx
    	Case 1:bl=createblurlayer(cam, 1,0,1,1, .95,1, o)
    	Case 2:bl=createblurlayer(cam, 1,0,1, .97,1,3, o)
    	Case 3:bl=createblurlayer(cam, 1, .2,1.02, .97,1,3, o)
    	Case 4:bl=createblurlayer(cam, 1,0,1.01,1, .95,1, o)
    	Case 5
    		bl=createblurlayer(cam, 1,0,1.01,1, .9,1, o)
    		EntityColor bl, 240,255,225
    	Case 6
    		bl=createblurlayer(cam, 1.1,0,1,1, .95,1, o)
    		RotateEntity bl, 1,1,0
    	Case 7
    		bl=createblurlayer(cam, 1.01,1,1,1, .9,1, o)
    		bl2=createblurlayer(cam, 1.02,-1,1,1, .8,1, o)
    End Select
    
    SetBuffer BackBuffer()
    While Not KeyHit(1)
    	TurnEntity cube, .1, .2, .3
    	TurnEntity p, .55, .35, .2
    	RenderWorld
    	bltex=updateblurlayer(bl, bltex)
    	If bl2 Then EntityTexture bl2, bltex
    	If fx=4 Then PositionEntity bl, Rnd(-.01, .01), Rnd(-.01, .01), 1
    	Flip
    Wend
    
    Function createblurlayer(cam, z#, ang#, mgn#, bright#, alpha#, bmode, ord)
    	Local xres=GraphicsWidth()
    	Local yres=GraphicsHeight()
    	layer=CreateMesh(cam)
    	s=CreateSurface(layer)
    	
    	vx#= 1.0*xres/texsize
    	vy#= 1.0*yres/texsize
    	AddVertex s,-1,-1,0,0,0
    	AddVertex s, 1,-1,0, vx#, 0
    	AddVertex s,-1,1,0,0, vy#
    	AddVertex s, 1,1,0, vx#, vy#
    	AddTriangle s, 0,1,2
    	AddTriangle s, 3,2,1
    	
    	PositionEntity layer, 1,1, z#
    	CameraProject cam, EntityX(layer, True), EntityY(layer, True), EntityZ(layer, True)
    	rx#= ProjectedX#()-.5*xres
    	ry#= ProjectedY#()-.5*yres
    	
    	ScaleMesh layer, .5*xres/rx#,.5*yres/ry#, 1
    	
    	PositionEntity layer,-.5/rx#,-.5/ry#, z#
    	RotateEntity layer, 0,0, ang#
    	
    	ScaleEntity layer, mgn#, mgn#, mgn#
    	EntityAlpha layer, alpha#
    	EntityBlend layer, bmode
    	col=255*bright#
    	EntityColor layer, col, col, col
    	EntityFX layer, 1
    	EntityOrder layer, ord
    	Return layer
    End Function
    
    Function updateblurlayer(layer, tex)
    	If tex=0 Then tex=CreateTexture(texsize, texsize)
    	EntityTexture layer, tex
    	CopyRect 0,0, GraphicsWidth(), GraphicsHeight(), 0,0, BackBuffer(), TextureBuffer(tex)
    	Return tex
    End Function
    Más Blur.
    Código:
    Graphics3D 1024,768,32,1
    SetBuffer BackBuffer()
    
    light=CreateLight()
    RotateEntity light,45,45,0
    
    cube=CreateCube()
    TranslateEntity cube,0,0,3.0
    ScaleEntity cube,.1,2,.1
    
    camera=CreateCamera()
    CameraRange camera,0.01,100
    
    CameraClsColor camera,255,0,0
    
    motion_blur_on=1
    motion_blur_quad=create_blurquad(camera) 
    EntityFX motion_blur_quad,2 Or 1 Or 16
    motion_blur_tex=CreateTexture(1024,1024,256)
    EntityAlpha motion_blur_quad,0.333
    
    EntityTexture motion_blur_quad,motion_blur_tex
    TranslateEntity motion_blur_quad,-(1.0/2048.0),0-(1.0/2048.0), 0.995 
    EntityOrder motion_blur_quad,-1
    
    While KeyDown(1)=0
    	
    	If KeyHit(57) ; Tecla Espacio
    		motion_blur_on=motion_blur_on Xor 1
    		If motion_blur_on=0 Then 
    			HideEntity motion_blur_quad
    		Else
    			ShowEntity motion_blur_quad
    		EndIf
    	EndIf
    	
     If motion_blur_on<>0
    		CopyRect 0,0,1024,768,0,128,BackBuffer(),TextureBuffer(motion_blur_tex)
     EndIf
     ;-----
     TurnEntity cube,.2,.4,.6
     UpdateWorld()
     RenderWorld()
     VWait:Flip 0
    Wend
    
    Function create_blurquad(par=0)
    	Local al1#,al2#,m,s,v0,v1,v2,tr
    	al1#=1.0
    	al2#=0.2
    	m=CreateMesh()
    	s=CreateSurface(m)
    	
    	v0=AddVertex(s,-1,-1,0, 0,1)
    	v1=AddVertex(s,+1,-1,0, 1,1)
    	v2=AddVertex(s, 0,0,0, .5,.5)
    	VertexColor s,v0,255,255,255,al1#
    	VertexColor s,v1,255,255,255,al1#
    	VertexColor s,v2,255,255,255,al2#
    	tr=AddTriangle(s,v0,v1,v2) 
    	
    	v0=AddVertex(s,+1,-1,0, 1,1)
    	v1=AddVertex(s,+1,+1,0, 1,0)
    	v2=AddVertex(s, 0,0,0, .5,.5)
    	VertexColor s,v0,255,255,255,al1#
    	VertexColor s,v1,255,255,255,al1#
    	VertexColor s,v2,255,255,255,al2#
    	tr=AddTriangle(s,v0,v1,v2)
    	
    	v0=AddVertex(s,+1,+1,0, 1,0)
    	v1=AddVertex(s,-1,+1,0, 0,0)
    	v2=AddVertex(s, 0,0,0, .5,.5)
    	VertexColor s,v0,255,255,255,al1#
    	VertexColor s,v1,255,255,255,al1#
    	VertexColor s,v2,255,255,255,al2#
    	tr=AddTriangle(s,v0,v1,v2)
    	
    	v0=AddVertex(s,-1,+1,0, 0,0)
    	v1=AddVertex(s,-1,-1,0, 0,1)
    	v2=AddVertex(s, 0,0,0, .5,.5)
    	VertexColor s,v0,255,255,255,al1#
    	VertexColor s,v1,255,255,255,al1#
    	VertexColor s,v2,255,255,255,al2#
    	tr=AddTriangle(s,v0,v1,v2)
    	
    	FlipMesh m
    	UpdateNormals m
    	If par <>0 Then EntityParent m,par
    	Return m
    End Function
    Última edición por Yue; 09-02-2011 a las 21:16
    "No son ni estrellas ni ídolos, son solo gente común que quiere hacer historia"

  15. #615
    Senior Member Avatar de Yue
    Fecha de ingreso
    May 2008
    Ubicación
    Bogotá
    Mensajes
    634

    Re: BlitzBasic 3D

    Bueno aquí otro código, cuya función es tener una idea de como hacer un menú dinamico donde el usuario pueda elegir la resolución de pantalla, de acuerdo a lo que soporte la tarjeta gráfica. Lo siguiente es lograr que al cambiar la información en pantalla se cambie la resolución en tiempo real, algo de tener muy en cuenta es que directX7 tiene como limite la resolución de pantalla máxima 1024 x 1536, es decir si en una computadora moderna, se escanea este modo gráfica y se intente ejecutar dará un error.

    Por tal motivo se recomiendo implementar un método que no escanee más allá de ese limite.

    Un saludo.

    Código:
    ;! Code by Yue
    ;! Public domain 2011
    
    Graphics 800,600,32,False
    
    Local Total_MG = CountGfxModes3D()
    
    Local Profu_P[50]
    Local Alto_P[50]
    Local Ancho_P[50]
    
    ; =============================
    
    Local T_Escape = 1 : Local Numero_MG = BuscarMG(1024,768,32)
    
    Local X
    For X = 1 To Numero_MG
    	
    	Alto_P[X] = GfxModeHeight(X)
    	Ancho_P[X] = GfxModeWidth(X)
    	Profu_P[X] = GfxModeDepth(X)
    Next 
    
    While Not KeyHit(1)
    	
    	
    	Cls
    	Text 0,0, Alto_P[Numero_MG] + " " + Ancho_P[Numero_MG] + " " + Profu_P[Numero_MG]
    	
    	
    	
    	
    	
    	AppTitle Numero_MG
    	
    	
    	If KeyHit(200) ; UP
    		
    		Numero_MG = Numero_MG +1
    		If Numero_MG > Total_MG Numero_MG = Total_MG
    		
    		
    	ElseIf KeyHit(208) ; Down
    		
    		Numero_MG = Numero_MG - 1
    		
    		If Numero_MG = 0 Numero_MG = 1
    		
    	End If 
    	
    	
    Wend 
    
    Function BuscarMG(Width%,Height%,Depth%)
    	Local IterModes
    	For IterModes=CountGfxModes3D() To 1 Step -1 
    		If (GfxModeWidth(IterModes)=Width)*(GfxModeHeight(IterModes)=Height)*(GfxModeDepth(IterModes)=Depth) Then Return IterModes
    		
    	Next
    	Return False
    End Function
    "No son ni estrellas ni ídolos, son solo gente común que quiere hacer historia"

Página 41 de 45 PrimerPrimer ... 31373839404142434445 ÚltimoÚltimo

Temas similares

  1. Proyecto BlitzBasic: Conquest Online
    Por KiusteR en el foro Videojuegos
    Respuestas: 93
    Último mensaje: 16-12-2009, 09:40

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •