November 25, 2020, 05:35:41 AM

Author Topic: [bb] Sorted Alpha Rendering by MCP [ 1+ years ago ]  (Read 550 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bb] Sorted Alpha Rendering by MCP [ 1+ years ago ]
« on: June 29, 2017, 12:28:38 AM »
Title : Sorted Alpha Rendering
Author : MCP
Posted : 1+ years ago

Description : Hide unwanted object detail!

Code :
Code: BlitzBasic
  1. ;*** Sorted Alpha rendering (object fade effect)
  2. ;*** Written by R Ferriby 2006
  3.  
  4. Graphics3D 800,600,32
  5. SetBuffer BackBuffer()
  6. img_screen%=CreateImage(GraphicsWidth(),GraphicsHeight())
  7.  
  8. light%=CreateLight()
  9. PositionEntity light,50,50,-50
  10.  
  11. cam%=CreateCamera()
  12.  
  13. bgsphere%=CreateSphere()
  14. ScaleEntity bgsphere,100,50,10
  15. PositionEntity bgsphere,0,0,200
  16.  
  17. redcube%=CreateCube()
  18. greencube%=CreateCube(redcube)
  19. bluecube%=CreateCube(redcube)
  20. yellowcube%=CreateCube(redcube)
  21.  
  22. PositionEntity redcube,0,0,100
  23.  
  24. ScaleEntity redcube,20,20,20,1
  25. ScaleEntity greencube,10,10,30,1
  26. ScaleEntity bluecube,10,30,10,1
  27. ScaleEntity yellowcube,30,10,10,1
  28.  
  29. EntityColor redcube,255,0,0
  30. EntityColor greencube,0,255,0
  31. EntityColor bluecube,0,0,255
  32. EntityColor yellowcube,255,255,0
  33.  
  34. alphamode%=0
  35. alpha#=1.0
  36. While Not KeyHit(1)
  37.         If KeyDown(208)
  38.                 If alpha>0.0
  39.                         alpha=alpha-0.01
  40.                 Else
  41.                         alpha=0
  42.                 EndIf
  43.         EndIf
  44.         If KeyDown(200)
  45.                 If alpha<1.0
  46.                         alpha=alpha+0.01
  47.                 Else
  48.                         alpha=1.0
  49.                 EndIf
  50.         EndIf
  51.         If KeyDown(2)
  52.                 If alphamode=1
  53.                         alphamode=0
  54.                 EndIf
  55.         EndIf
  56.         If KeyDown(3)
  57.                 If alphamode=0
  58.                         alphamode=1
  59.                 EndIf
  60.         EndIf
  61.         TurnEntity redcube,1,0.5,0.5
  62.         TurnEntity bgsphere,0,0,-0.25
  63.         If alphamode=0
  64.                 ;*** normal rendering
  65.                 CameraClsMode cam,1,1
  66.                 ShowEntity bgsphere
  67.                 ShowEntity redcube
  68.                 EntityAlpha redcube,alpha
  69.                 EntityAlpha greencube,alpha
  70.                 EntityAlpha bluecube,alpha
  71.                 EntityAlpha yellowcube,alpha
  72.                 RenderWorld
  73.         Else
  74.                 ;*** step 1 render bg scene
  75.                 HideEntity redcube
  76.                 ShowEntity bgsphere
  77.                 CameraClsMode cam,1,1
  78.                 RenderWorld
  79.                 CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,BackBuffer(),ImageBuffer(img_screen)
  80.  
  81.                 ;*** step 2 render alpha mask
  82.                 HideEntity bgsphere
  83.                 CameraClsMode cam,0,0
  84.                 ShowEntity redcube
  85.                 EntityAlpha redcube,1
  86.                 EntityAlpha greencube,1
  87.                 EntityAlpha bluecube,1
  88.                 EntityAlpha yellowcube,1
  89.                 RenderWorld
  90.  
  91.                 ;*** step 3 restore bg scene
  92.                 CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,ImageBuffer(img_screen),BackBuffer()
  93.  
  94.                 ;*** step 4 render alpha object
  95.                 EntityAlpha redcube,alpha
  96.                 EntityAlpha greencube,alpha
  97.                 EntityAlpha bluecube,alpha
  98.                 EntityAlpha yellowcube,alpha
  99.                 RenderWorld
  100.         EndIf
  101.         If alphamode=0
  102.                 Text 0,0,"Normal Alpha Mode"
  103.         Else
  104.                 Text 0,0,"Sorted Alpha Mode"
  105.         EndIf
  106.         Text 0,30,"Alpha = "+alpha
  107.         Text 0,60,"'1' - Normal Alpha"
  108.         Text 0,80,"'2' - Sorted Alpha"
  109.         Text 0,100,"'Up' - Inc Alpha"
  110.         Text 0,120,"'Down' - Dec Alpha"
  111.         Text 0,150,"'Esc' - Quit"
  112.        
  113.         Flip
  114. Wend
  115.  
  116. End


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal