SoftPixel Engine Wrapper 2.0 (only for B3D)

Blitz3D Forums/Blitz3D Userlibs/SoftPixel Engine Wrapper 2.0 (only for B3D)

LukasBanana(Posted 2010) [#1]
Hi folks,
a long time ago I created a SoftPixel Engine wrapper for Blitz3D/ BlitzBasic.
Now I created a new one which is very very very much more comfortable for all you B3D users!! ;-)
Why? Because the functions have the same name so that you just have to include the "SoftPixelEngineWrapper.bb" file!
That's all ;-)

At first it's just an alpha version, so some functions are not available yet but they will be added in later versions.
In the download-package are 3 examples that show how easy the use of the wrapper is and which is new.

Here is the link to the thread in my own community where I published the download-link:
http://www.hlc-games.de/forum/viewtopic.php?f=13&t=112

Hope you can use it :-D


lo-tekk(Posted 2010) [#2]
If it works, it would be great for porting existing code to D3D9. Is there any chance for support of DXTC ? Another cool thing would be, to see a mini game in action. A rotating cube isn't that much convincing. What about shadows and bumpmapping as statet on your homepage ?
Keep it up !
Cheers


GIB3D(Posted 2010) [#3]
I tried to do some FastExt in one of the examples but it didn't work :(


Jiffy(Posted 2010) [#4]
It's not supposed to. FastExt expects stuff to be where it isn't. Eventually Softpixel should be able to do everything from FastExt & much more. Eventually.


LukasBanana(Posted 2010) [#5]
Today I changed the permissions in my SubForum "Multilingual" where now also unregistered users (Guests) can create new topics and answer.
It's the "laber-corner" where the topics can be in each language.

http://www.hlc-games.de/forum/viewforum.php?f=22


Jiffy(Posted 2010) [#6]
Guests can create new topics? Your faith in humanity is stunning.


Doggie(Posted 2010) [#7]
Got this bookmarked. Will wait and see what this becomes.
Is there an e-mail list for NEWS etc?


LukasBanana(Posted 2010) [#8]
"an e-mail list for NEWS", do you mean something like a NewsLetter?
So far I have not established something like that.
Use the Forum ( http://www.hlc-games.de/forum/ ) or the homepage ( http://softpixelengine.sourceforge.net/ ).


t3K|Mac(Posted 2010) [#9]
Great piece of work!


LukasBanana(Posted 2010) [#10]
Today I released the "SoftPixel Engine Wrapper 2.1-beta" including a Shader Demo with Water Simlulation! :-D

Happy downloading ;-)

http://softpixelengine.sourceforge.net/sp_downloads.html


wmaass(Posted 2010) [#11]
Looks great!


ShadowTurtle(Posted 2010) [#12]
I found a bug: The equi. 2d command CreateImage does not work / exists..

There are no commands like spwDrawPixelFast etc. too

Does exists a workaround? I hate using .DLLs from my game folder. I do not know the future support (win8/directx11 compatible?)..


LukasBanana(Posted 2010) [#13]
Each who downloaded the latest wrapper packet should be able to get this program to run:
A little shader demo. If anyone has problems with the WaterShader you should have a look at this small example.

B3D Code:
; SPE Wrapper Demo5 - 30.5.2010

Include "SoftPixelEngineWrapper.bb"

DebugLog(True, "DebugLog.txt")

UseOpenGL()
Graphics3D(640, 480, 32, 0)

cam = CreateCamera()
PositionEntity(cam, 0, 0, -3)

light = CreateLight(1)

obj = CreateCube()

tex = LoadTexture("../media/SoftPixelEngineLogo.png")
EntityTexture(obj, tex)

shader = LoadShader("../media/ShaderTestVert.txt", "../media/ShaderTestFrag.txt", "", "")
SetShader(obj, shader)

While Not KeyDown(1)
   
   Deg# = Deg# + 1
   Factor# = Sin(Deg)*0.015
   
   SetShaderFloat(shader, "Factor", Factor)
   
   TurnEntity(obj, 0, 0.25, 0)
   
   RenderWorld
   
   Flip
   
Wend

EndGraphics
End

ShaderTestVert.txt file (don't forget the last empty line! - because of C syntax):
void main(void)
{
    gl_FrontColor   = gl_Color;
    gl_Position     = ftransform(); // Default transformation
    gl_TexCoord[0]  = gl_MultiTexCoord0;
}


ShaderTestFrag.txt file:
uniform float Factor;
uniform sampler2D tex0;

void main(void)
{
    vec2 Map   = gl_TexCoord[0].xy;
    vec4 Color = texture2D(tex0, Map);
   
    Color -= texture2D(tex0, Map.xy - Factor)*2.7;
    Color += texture2D(tex0, Map.xy + Factor)*2.7;
   
    gl_FragColor = Color;
}




Kryzon(Posted 2010) [#14]
Hello Lukas, thanks for the release.

I'm very interested in working on a wrapper for BMax (or better said, a 'module') of your engine, preserving the interface of B3D while still giving extensions, like the additional skeleton animated mesh formats your engine accepts, for instance. And shaders, of course.

It's something very much sought after for BMax users: a stable, compatible, fast and capable engine.
Would it be possible for you to release the source of this updated wrapper? The only ones available are from the previous version. This would really help me to enhance a possible BlitzMax module for SoftPixel.

Thank you.


LukasBanana(Posted 2010) [#15]
I answered your EMail ;-)
I hope you already managed it to re-compile the engine.
That's always difficult to re-compile a large project (in my point of view ^^).

EDIT:
I could not send you the EMail back :-(
So I answered it as a privat message in my community (hlc-games.de/forum) ;-)


LukasBanana(Posted 2010) [#16]
New update: SPE Wrapper 2.1.1-beta has been released!
Happy downloading ;-)


Kryzon(Posted 2010) [#17]
Perfect, just got it. Thanks again!


jfk EO-11110(Posted 2010) [#18]
Fascinating Project, Gotta watch this. Thanks Lukas!


LukasBanana(Posted 2010) [#19]
Thank you all ^^

I released a new version again (v.2.1.2-beta).
Now there are 8 wrapper demos. The 8th is a shader library with GLSL and finally HLSL!


Charrua(Posted 2010) [#20]
hi
which are the minimun system requeriments for your lib?
i tested it on my toshiba l305 laptop with a poor video card (intel mobile argh!) and only get a black screen or a MAV when calling Graphics3D, i tried to change tha Width, Height and color depth, but none seems to work.

thank's for that lib anyway, it deserves a better machine i think.

edit
just tried you new version:

Demo1 : mav on graphics3d
Demo2 : mav on graphics3d
Demo3 : is a 2d demo, work nice
Demo4 : use opengl, quit's inmediatly but no mav
Demo5 : use opengl, mav on CreateCube
Demo6 : mav on graphics3d
Demo7 : mav on graphics3d
Demo8 : mav on graphics3d


Juan


Charrua(Posted 2010) [#21]
sorry, i see the debuglog.txt, it started with:
Error: Vertex-buffer-objects (VBOs) are not supported!

and many opengl errors... so it seems to be the problem

i'll test your engine on another machine

Juan


LukasBanana(Posted 2010) [#22]
Yes, the requierments are a little bit higher, then in some other engines with OGL 1.4 or so. Whereas I want to get the engine running with OGL 1.4 anytime.
But currently the engine needs at least OpenGL 2.0+ or Direct3D9.
And the SoftwareRenderer often just shows a blank screen when the other requierments are not available - saldy.
In the "DebugLog.txt" file you should see your OpenGL version when this renderer is used.


Ferret(Posted 2010) [#23]
Great stuff, i like it and want to use it.
All demos worked for me.

Because the functions have the same name so that you just have to include the "SoftPixelEngineWrapper.bb" file!
That's all ;-)

I tryed it in a new project but got problems with the gui lib i want to use.
NGui works with B3D but i get errors about missing images when i include the engine.

Any idea why this happens?


Ferret(Posted 2010) [#24]
Just did a test with Devil Gui and got the same errors.


LukasBanana(Posted 2010) [#25]
There are currently not all B3D functions supported ( still beta ;-) ).
If B3D use a function which is not supported by the SPE yet it will miss images because the image handle is allocated by the SPE.

Example:

img = LoadImage("foobar.bmp") ; SPE function

; The following will occur an error because "img" is a handle for the SPE
; But B3D does not know anything about the handle.
BufferDirty(img) ; B3D function (not SPE support yet) -> error

/Example

The SPE Wrapper is currenlty in a beta mode but I will add more functions.
If you want to use the wrapper please join our community where you can ask questions all around the wrapper:
http://www.hlc-games.de/forum/viewforum.php?f=13

kind regards,
Lukas


Ferret(Posted 2010) [#26]
So it will work in the future?

Thx for the info.


LukasBanana(Posted 2010) [#27]
Today I released the SPE Wrapper 2.1.3-beta where I have fixed some bugs among others the 3DS Loader which should now work correct.
Also GeometryShaders are now available for people who have OpenGL 3.3.
http://softpixelengine.sourceforge.net/downloads.html


wmaass(Posted 2010) [#28]
Thanks and keep up the great work. I see that you now have Visual Studio up and running with SPE, will have to check it out.


puki(Posted 2010) [#29]
I really must have a look at this soon.


Hotshot2005(Posted 2010) [#30]
Impressive Demo :)


Sake906(Posted 2010) [#31]
uhm.. I'm having a problem:

Doesn't compile, at all.


Hotshot2005(Posted 2010) [#32]
Hey Sake906..

What versions of Blitz 3D are you using now?

Put

SoftPixelEngineWrapper.bb
SoftPixelEngineWrapper.decls
SoftPixelEngineWrapper.dll
SoftPixelEngineWrapperConsts

into BLITZ 3D > Userlibs

Then it should Compile :) no problem


KronosUK(Posted 2010) [#33]
Kryzon, did you make any headway with your Blitzmax wrapper?


LukasBanana(Posted 2010) [#34]
A new version has been released (2.1.4-beta). A few changes and bug fixes again.
Now get ready for mesh instancing ;-) (Demo9)


Yue(Posted 2010) [#35]
hello is very interesting your project, you commented that none of the examples of shader I worked as I get memory error, another thing is that you should put information about FPS on the screen to watch the performance.

Another thing is that none of the projects in Ideal work.

SoftPixel Engine - debug log file:
(generated at 25/08/2010 09:30:22)
==================================

GeometryShader are not supported
SoftPixel Engine - v.2.1 alpha
Copyright (c) 2008 - Lukas Hermanns
Microsoft Windows XP Professional Service Pack 3 (Build 2600)
Compiled with: GCC 4.3.2
Using renderer: OpenGL 2.1.2
Shader version: 1.20 NVIDIA via Cg compiler
GeForce FX 5200/AGP/SSE/3DNOW!: NVIDIA Corporation

SensitiveSoundSystem - v.3.0
Copyright (c) 2008 - Lukas Hermanns
Using device: WinMM

Load texture: "../media/SoftPixelEngineLogo.png"
Load GLSL vertex shader: "../media/ShaderTestVert.txt"



Hotshot2005(Posted 2010) [#36]
Very good wapper :)


LukasBanana(Posted 2010) [#37]
@Yue: I'll install IDEal on my PC and check this out.


LukasBanana(Posted 2010) [#38]
Works fine with IDEal on my PC. I don't know where the problem is, sorry :-(
But IDEal looks very interesting :-)
The only thing which looks strange is that the IDE occurs "Error Handler" when compiling the wrapper demos BUT the demos run! Three errors occur but the demos can be compiled and executed without a problem!?!


LukasBanana(Posted 2010) [#39]
For all who have an ATI card: I solved the problem when compiling (or rather linking) shaders.
You have to download the latest SoftPixelEngineWrapper SDK and additionally the following file:
http://softpixelengine.sourceforge.net/tmp/SoftPixelEngineWrapper.zip
Replace the old "SoftPixelEngineWrapper.dll" and compiling shaders should work correct on ATI GfxCards, too ;-)


LukasBanana(Posted 2010) [#40]
Today I've finished the Tessellation Shader. This and the Direct3D11 renderer will be available in the Wrapper for BlitzBasic soon.
There is a Tessellation Demo on YouTube (Currently written in C++):
http://www.youtube.com/watch?v=BeAqJu9UapQ


wmaass(Posted 2010) [#41]
Nice!


LukasBanana(Posted 2010) [#42]
For all who have a DirectX11 ready graphics card: here is my first interactive Tessellation Demo:
http://www.hlc-games.de/forum/viewtopic.php?f=10&t=256&p=665#p665
This is what you expected soon for B3D ;-)


SabataRH(Posted 2010) [#43]
Am i doing someting wrong? I downloaded the Tessellation demo but up running the .exe i get a window that appears for about .5 secs and then vanishes, nothing else.


LukasBanana(Posted 2010) [#44]
Does your graphics card really support DirectX11?

Anyway try to start the program from your command line (cmd.exe) to what happens.


Leon Drake(Posted 2010) [#45]
tried running examples but i get MAVS when trying to load the shaders

I am running a ATI Radeon HD 3600 1024mb video card.


LukasBanana(Posted 2010) [#46]
I've read here:
http://www.amd.com/us/products/desktop/graphics/ati-radeon-hd-3000/hd-3600/pages/ati-radeon-hd-3600-overview.aspx
That the ATI Radeon HD 3600 does support DirectX10.1 ;-)
You cannot runt the example in software-mode. The engine switchs to the feature which is available.
If your GraphicsCard does not support DirectX11 you won't be able to run any Tessellation Demo - or the tessellation is disabled.


Leon Drake(Posted 2010) [#47]
i was mostly just trying to run the water demo and the shader demo, you say it may be on software mode?


LukasBanana(Posted 2010) [#48]
There is a software renderer in the engine. But shaders will not run using this renderer. What I meant was that the Direct3D11 device has internally a software renderer but I don't use this for final releases (only for debugging).
If the water shader runs fine you are using OpenGL 2.0 or Direct3D9


LukasBanana(Posted 2010) [#49]
I created a "SoftPixel Engine Users" group on Facebook:
http://www.facebook.com/group.php?gid=154808694548463
There you can upload images, videos etc. and get the latest information all around the SoftPixel Engine :-)


LukasBanana(Posted 2010) [#50]
Today I released the SPE Wrapper 2.1.5-beta with Direct3D11 support and a Tessellation example (which can only be used if you have a DirectX11 capable GfxCard).
You should change in "WrapperDemo10(Tessellation).bb" in line 50 the variable "Room" to a global variable - I've forgot it. Otherwise the debug-log will be wasted with all the same warning message.
Happy downloading :-D


Uber Jase(Posted 2010) [#51]
This is looking so good:). I have a dx11 card and now could use some of its features:) Could Directcompute be used to do things like flags as in Dirt 2?

Oh and could you tell me where the dll goes in Purebasic version? I put it in userlibaries but the examples dont run saying the dll isnt found. The blitz3d version works great though:D


LukasBanana(Posted 2010) [#52]
With PureBaisc you need to have the DLL in the folder where your PB program is.
But I currently don't know how to transmit a PureBaisc Structure to the Wrapper.
ComputeShader are currently not supported in the wrapper.


LukasBanana(Posted 2010) [#53]
New demo videos are online on YouTube:

http://www.youtube.com/watch?v=cVdDFkPg4JQ

http://www.youtube.com/watch?v=OV57ZH1QDSM


LogBomb(Posted 2010) [#54]
Looks great Lukas. This wrapper/engine is starting to look like a genuine option for updating Blitz3D from DX7 to DX9 and beyond!


Panno(Posted 2010) [#55]
ultrahardcore !!!
i like it


LukasBanana(Posted 2010) [#56]
I created a chat room for the SoftPixel Engine:

http://softpixelengine.sourceforge.net/chat.html

Powered by afterworkchat.de :-)


KronosUK(Posted 2010) [#57]
If anyones interested I posted a Blitzmax version of the Blitz3d wrapper over in the Blitzmax forums.