Page 1 of 1
how can i generate 2d object with particles ?
Posted: Wed Apr 21, 2021 4:55 am
by skinkairewalker
hello everyone !
i am studying PB 2D engine ( Game ), and an intriguing question arose, can I do something similar to this in PB with the 2d support library?
The project in question was done on the 2D engine called Unity Engine
https://xform.artstation.com/projects/gJZbOP and consists of "generating" sidereal stars automatically...
Does anyone have a similar example or have any idea how to do it in PB?
Re: how can i generate 2d object with particles ?
Posted: Wed Apr 21, 2021 6:37 am
by Mijikai
It would be just sprites and or pixels that get blended together in this case with additive blending.
Draw the sun and the surface layers (animate them) then create particles (sprites) for the burts and blend everything together.
If you want an object to facilitate all of that check out one of the oop threads.
Re: how can i generate 2d object with particles ?
Posted: Thu Apr 22, 2021 10:56 pm
by Mijikai
Here is a super simple sun rendered with just 3 sprites:
If these sprites are rotated against each other the sun surface looks already pretty nice and alive.
The more work is put into the animation and sprites the more realistic the sun will look.
But even with just 3 sprites it looks already fairly good, so it all depends on what look you want to achive.
Have fun
Re: how can i generate 2d object with particles ?
Posted: Fri Apr 23, 2021 2:08 am
by skinkairewalker
can u send me this example ? xD
Re: how can i generate 2d object with particles ?
Posted: Fri Apr 23, 2021 8:29 am
by Mijikai
How i did it.
Source:
Code: Select all
EnableExplicit
XIncludeFile "nautilus.pbi"
Macro RenderSun(_x_,_y_,_size_)
*engine\RenderBegin()
*sun_light\BlendMod (_x_,_y_,_size_ * 1.6,_size_ * 1.6,#True,$FFFFFF,rotate + 45)
*sun_light\BlendMod (_x_,_y_,_size_ * 1.8,_size_ * 1.8,#True,$FFFF33,-rotate)
*sun_core_1\BlendMod(_x_,_y_,_size_,_size_,#True,$BBBB88,-rotate)
*sun_core_1\BlendMod(_x_,_y_,_size_,_size_,#True,$FFFF88,-rotate / 2)
*sun_core_1\BlendMod(_x_,_y_,_size_,_size_,#True,$FFFF88,rotate)
*sun_core_2\BlendMod(_x_,_y_,_size_,_size_,#True,$BBBB88,rotate / 2)
*sun_core_2\BlendMod(_x_,_y_,_size_,_size_,#True,$888866,-rotate)
*engine\DrawText(470,500,"Sun Example",#True)
*engine\RenderEnd()
EndMacro
Procedure.i Main()
Protected *engine.NAUTILUS_ENGINE
Protected *sun_light.NAUTILUS_TEXTURE
Protected *sun_core_1.NAUTILUS_TEXTURE
Protected *sun_core_2.NAUTILUS_TEXTURE
Protected rotate.f
If nautilusVersion() = #NAUTILUS_VERSION
If OpenWindow(0,0,0,960,600,#Null$,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
AddWindowTimer(0,0,20)
*engine = nautilusEngine(WindowID(0),WindowWidth(0),WindowHeight(0))
If *engine
*engine\RenderVSyncMode(#False)
*sun_light = *engine\CreateTexture(?sun_light)
*sun_core_1 = *engine\CreateTexture(?sun_core_1)
*sun_core_2 = *engine\CreateTexture(?sun_core_2)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Timer
rotate + 0.1
RenderSun(470,260,280)
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
*engine\Release()
EndIf
CloseWindow(0)
EndIf
EndIf
ProcedureReturn #Null
EndProcedure
Main()
End
DataSection
sun_light:
IncludeBinary "sun_1.png" ;original by HalloweenNight: Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
sun_core_1:
IncludeBinary "sun_2.png" ;original by Kevin Reardon: Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
sun_core_2:
IncludeBinary "sun_3.png" ;original by Vasco M. J. Henriques and Ainar Drews: Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
EndDataSection
Download Engine:
viewtopic.php?p=563734#p563734
Download Sprites:
https://www.dropbox.com/s/w0rdp67joc6ml ... s.zip?dl=0
Put all files in the same Directory.
Hope this helps even thought i used my own gfx lib.
This ofc. can also be easily done with the PB 2d lib.
Re: how can i generate 2d object with particles ?
Posted: Fri Apr 23, 2021 11:50 am
by KayBur
And much more depends on the amount of time that is available for the implementation of the idea. For example, I am enraged by games with poor graphics in 2021. Of course, this does not apply to projects of people who are just learning programming. I'm talking about talentless products that cool companies make for one-time earnings.
Re: how can i generate 2d object with particles ?
Posted: Wed Jun 02, 2021 9:56 am
by Thorium
skinkairewalker wrote: ↑Wed Apr 21, 2021 4:55 am
i am studying PB 2D engine ( Game ), and an intriguing question arose, can I do something similar to this in PB with the 2d support library?
The project in question was done on the 2D engine called Unity Engine
https://xform.artstation.com/projects/gJZbOP and consists of "generating" sidereal stars automatically...
Does anyone have a similar example or have any idea how to do it in PB?
I think PB 2D can't achive that. The glow is achived by emissive color. Don't think PB's 2D engine supports that. You would need to use the 3D part of PB (Ogre engine). While unity supports 2D, it is not a 2D engine and often cool effects are achived by doing 3D but using planar projection.