SoftPixel Engine Wrapper for BlitzBasic

Blitz3D Forums/Blitz3D Userlibs/SoftPixel Engine Wrapper for BlitzBasic

LukasBanana(Posted 2009) [#1]
Hi folks,

last year I released a Wrapper (userlib) for Blitz3D (I think it'll run with general BlitzBasic too) of my "SoftPixel Engine".
It supports "OpenGL 2.0", "Direct3D9" and its own SoftwareRenderer.

Try the pre-compiled applications of the tutorials and exsamples =)

Please have a look at it:
http://softpixelengine.sourceforge.net/

You can download the Wrapper at: "Downloads" -> "BB. S.P. Wrapper"

nice greeting from Germany,
Lukas


SabataRH(Posted 2009) [#2]
Downloaded the wrapper, placed the dll and decls into my blitz3d/userlib folder. Loaded up the example code and was met with "Userlib not Found".. Also tried placing the dll into my win/sys32 directory and the directory where the demo .bb code is loaded from. Same effect.

Also, I stumbled upon http://softpixelengine.sourceforge.net/docu/functions_func.html which seems to be some documentation of the functions I was wondering if you have any real docs to this engine? Function descriptions and what not, thats alot of impressive commands you have included in this engine, would love to know what they did.

Any further advice?


LukasBanana(Posted 2009) [#3]
Currently not all functions of the engine are included in the Wrapper, because it's a C++ project.
But the wrapper for PureBasic and BlitzBasic should be able to render some effects, such as Shader which is not possible with pure B3D and DX7.

For B3D I just use the standard IDE so it is possible that the userlib does not work correct with an other - that wouldn't be the first time.
So, try it with the old standard IDE.

PS: look inside the *.decls file. The syntax is not correct. I'll fix this problem for the next release ;-)


puki(Posted 2009) [#4]
Doesn't appear to work - even with standard IDE.


LogBomb(Posted 2009) [#5]
This is a very impressive project indeed :)

I got the example to work, although I am using B3d 1.98

However, there are 3 path errors in the example that made it mav out at first:

In 3 places in the example this path:

DirNameB3D$+"samples\mak\

Needs to be changed to this

DirNameB3D$+"samples\Blitz 3D Samples\mak\

This could well become the wrapper of choice for moving B3d away from DX7, now that Xors3d has officially announced that GameMakers and derivative engines cannot be made with Xors3d.



Logbomb


LukasBanana(Posted 2009) [#6]
Nice to hear that it runs at least on one PC =)

If there is anyone who wants to join the SoftPixel-Project-Team (currently 1 man team ^^) to develop the wrapper further, please contact me with my EMail (current EMail is displayed on my Project Homepage at "Credits")

Lukas


SabataRH(Posted 2009) [#7]
Hi,

Tried as you suggested and used the standard IDE, no luck. I also think this could become a viable option form moving out of dx7. Logbomb, mind sharing what you did to get the thing running? Thanks.


LogBomb(Posted 2009) [#8]
If you are getting a "Userlib not found" error, (and the dll and decls files are in the userlib folder), it probably means that there is a missing dll on your system, that the main dll is referring to.

If you download the full engine, you will find a folder called bin\win32, there are a few dll's in there. Try putting the opengl32.dll from that folder into your userlib or win\system32 folder.

Let us know how it goes ;)



Logbomb


puki(Posted 2009) [#9]
Nope that didn't work - I already had opengl32.dll in System32; however, I tried putting all the dlls in both System32 and in Userlibs and still got the userlib error.

Xors3d (also newly posted on these forums) has a problem for some users with a constant userlib error - makes me wonder if it is a Blitz3D problem.


EDIT: I tried a few versions of Blitz3D, including latest, but none of them worked.


LogBomb(Posted 2009) [#10]
Hmm, I think some people had a similar Userlib problem with ninfa3d too.

I am using Blitz 1.98 (if it has something to do with the version of blitz).

Perhaps it is a case of installing the right visual c++ runtime.

Give that a try ;)

Logbomb


puki(Posted 2009) [#11]
Mmm, well, even installing that particular VCredist_x86.exe made no difference for me.

Still, I have FastLibs and Xors3D to play with.


LogBomb(Posted 2009) [#12]
Well now it is getting to be a real mystery!! (why it is working for me and not others)

What version of Blitz are you using? You could try it with 1.98 so we can elimate that reason.

Lukas, what version of Visual C++ did you compile it with?

Logbomb


puki(Posted 2009) [#13]
I tried 1.98 and a few others.


Sweenie(Posted 2009) [#14]
By running Process Monitor from www.sysinternals.com I found that a dll called jpeg62.dll was missing for me. (seems to be part of some GNU Jpeg API)
Googled it, downloaded it and then it worked.


puki(Posted 2009) [#15]
I love "Sweenie" - he is like having your very own life-size Jelly Baby.


Sweenie(Posted 2009) [#16]
;P


LogBomb(Posted 2009) [#17]
I found the problem (this time lol), jpeg62.dll is missing, I have uploaded it here:

Click on jpeg62.zip

Better add that to your wrapper lukas ;)

Logbomb


LukasBanana(Posted 2009) [#18]
Nice to read that the problem has been solved without my help, but sorry vor this late message.

I compiled it with GCC (GNU Compiler Collection -> GNU C++).
In the next version I want to add a folder called "bin/Win32-msvc" with the Dll for MS Visual C++.

In the first version I used jpeg62.dll, but meantime I compiled the jpeg source file direct into the Dll so I thought, jpeg62.dll is no longer needed.
But seemingly not.

So I will upload this Dll for the next release of the Wrapper.

Thanks for that advice =)


LogBomb(Posted 2009) [#19]
You beat me to the post Sweenie lol.

Turns out I had jpeg62 already, because I compile my source mod of Cube2 with the GCC GNU.

Anyway it is good to get it solved, and I am looking forward to this engine gaining some momentum ;)

Logbomb


puki(Posted 2009) [#20]
Just to go with "Sausagedonkey's" doc find: http://softpixelengine.sourceforge.net/docu/functions_func.html

This is what is inside the decls (for people who'd rather know what it does/is capable of, before downloading):

spCreateDevice%(DriverType, DimensionWidth, DimensionHeight, ColorDepth, Title$, isFullScreen, isResizeAble, isVsync, isAntiAlias, MultiSample)
spCreateDeviceWnd%(hWndParent, DimensionWidth, DimensionHeight, ColorDepth, Title$, isVsync, isAntiAlias, MultiSample)
spGetVideoDriver%()
spGetSceneManager%()
spGetCollisionDetector%()
spGetUserControl%()
spDeleteDevice()
spUpdateEvent%()
spGetScreenDimensionWidth%()
spGetScreenDimensionHeight%()
spGetWindowHandle%()
spChangeGFXMode(hWnd, DimensionWidth, DimensionHeight, ColorDepth, Title$, isFullScreen, isResizeAble)
spSetRenderMode(RenderMode)
spSetFrameRate(FrameRate#)
spSetResizeMode(isResizeUpdate)
spSetVsync(isVsync)
spGetFPS#()
spGetMilliseconds%()
spGetTime%(Type)
spBeep(Milliseconds, Frequency)
spSetCursorPosition(PositionX, PositionY)
spGetCursorPositionX%()
spGetCursorPositionY%()
spGetCursorSpeedX%()
spGetCursorSpeedY%()
spHideCursor(isHide)
spGetMouseWheel%()
spSetMouseWheel(Value)
spIsKeyPressed%(KeyCode)
spIsMouseButtonPressed%(ButtonType)
spIsKeyReleased%(KeyCode)
spIsMouseButtonReleased%(ButtonType)
spIsKeyHit%(KeyCode)
spIsMouseButtonHit%(ButtonType)
spOpenConsole(Title$)
spCloseConsole()
spClearConsole()
spPrintMessage(Message$)
spPrintWarning(Message$)
spPrintError(Message$)
spGetMessage(Message$)
spGetWarning(Message$)
spGetError(Message$)
spFlipBuffers()
spClearBuffers()
spSetClearColor(ColorRed, ColorGreen, ColorBlue)
spGetMovieManager%()
spLoadTexture%(Filename$, RenderMode, isEdgeSmooth)
spDeleteTexture(Texture)
spIsTexture%(Texture)
spCreateTexture%(DimensionWidth, DimensionHeight, RenderMode, isEdgeSmooth)
spSetTextureTransFilter1(Texture, ColorRed, ColorGreen, ColorBlue, ColorAlpha)
spSetTextureTransFilter2(Texture, ColorRed, ColorGreen, ColorBlue, ColorAlpha, Variation)
spSetTextureTransFilter3(Texture, PositionX, PositionY, Alpha, Variation)
spSetTextureTransFilterAlpha(Texture, Mode)
spSetTextureSize(Texture, SizeWidth, SizeHeight)
spMixTexture(Texture, MixedTexture, Type)
spChangeTextureAttributes(Texture, RenderMode, isEdgeSmooth)
spSetTextureColorIntensity(Texture, ColorRed, ColorGreen, ColorBlue)
spBeginDrawing2D()
spEndDrawing2D()
spBeginDrawing3D()
spEndDrawing3D()
spBeginAlphaBlending(Type)
spEndAlphaBlending()
spBeginTextureDrawing(Texture)
spEndTextureDrawing()
spSetLineSize(Size)
spSetPointSize(Size)
spDraw2DImage1(Texture, X, Y, ColorRed, ColorGreen, ColorBlue, ColorAlpha, isTransFilterUsing)
spDraw2DImage2(Texture, PositionLeft, PositionTop, PositionRight, PositionBottom, ClippingLeft#, ClippingTop#, ClippingRight#, ClippingBottom#, ColorRed, ColorGreen, ColorBlue, ColorAlpha, isTransFilterUsing)
spDraw2DImage3(Texture, X, Y, Rotation#, Radius#, ColorRed, ColorGreen, ColorBlue, ColorAlpha, isTransFilterUsing)
spGetPixelRed%(X, Y)
spGetPixelGreen%(X, Y)
spGetPixelBlue%(X, Y)
spDraw2DPixel(X, Y, ColorRed, ColorGreen, ColorBlue, ColorAlpha)
spDraw2DLine1(X1, Y1, X2, Y2, ColorRed, ColorGreen, ColorBlue, ColorAlpha)
spDraw2DLine2(X1, Y1, X2, Y2, Color1Red, Color1Green, Color1Blue, Color1Alpha, Color2Red, Color2Green, Color2Blue, Color2Alpha)
spDraw2DLine3(X1, Y1, X2, Y2, ColorRed, ColorGreen, ColorBlue, ColorAlpha, DotLength)
spDraw2DRectangle1(PositionLeft, PositionTop, PositionRight, PositionBottom, ColorRed, ColorGreen, ColorBlue, ColorAlpha, Type)
spDraw2DRectangle2(PositionLeft, PositionTop, PositionRight, PositionBottom, lefttopColorRed, lefttopColorGreen, lefttopColorBlue, lefttopColorAlpha, righttopColorRed, righttopColorGreen, righttopColorBlue, righttopColorAlpha, rightbottomColorRed, rightbottomColorGreen, rightbottomColorBlue, rightbottomColorAlpha, leftbottomColorRed, leftbottomColorGreen, leftbottomColorBlue, leftbottomColorAlpha, Type)
spLoadFont%(FontName$, FontSize, TypeFlag, RotationAngle, isSymbolUsing, is3DSpaceUsing, FontDepth#, DetailDeviation#, Space3DMode)
spLoadFontSize%(FontName$, FontSizeWidth, FontSizeHeight, TypeFlag, RotationAngle, isSymbolUsing, is3DSpaceUsing, FontDepth#, DetailDeviation#, Space3DMode)
spDeleteFont(Font)
spDraw2DText(Font, PositionX, PositionY, Text$, ColorRed, ColorGreen, ColorBlue, ColorAlpha)
spDraw3DText(Font, Text$, PositionX#, PositionY#, PositionZ#, RotationX#, RotationY#, RotationZ#, ColorRed, ColorGreen, ColorBlue, ColorAlpha, Camera)
spGetGUI%()
spGetStencilManager%()
spGetAnimator%()
spRenderScene()
spCreateShader%(Type)
spLoadShader%(FilenameVertex$, FilenameFragment$)
spDeleteShader(Shader)
spCreatePivot%()
spCreateModel%(Type, Detail, Radius1#, Radius2#, isCap)
spCreateModelEx%(Type, Detail, Radius1#, Radius2#, DegreeLength#, Size#, isCap)
spCreateSuperShape%(v1#, v2#, v3#, v4#, v5#, v6#, v7#, v8#, v9#, v10#, v11#, v12#, Detail)
spCreateSkyBox%(Texture1, Texture2, Texture3, Texture4, Texture5, Texture6, Radius#, Type)
spCreateHighMap%(TextureHighMap, Detail)
spCreateCamera%()
spCreateLight%(Type)
spCreateSprite%(Texture)
spCreateTerrain%(TextureHighMap, Texture, ChangeDist#)
spLoadModel%(Filename$, TexturePath$, FileType)
spSetWireframe(Mode)
spSetLighting(isLighting)
spSetStencilEffects(isStencilEffects)
spSetFogMode(FogMode)
spSetFogColor(ColorRed, ColorGreen, ColorBlue, ColorAlpha)
spSetFogRange(Range#, NearFog#, FarFog#, FogType)
spDeleteNode%(Node)
spSetNodePosition(Node, X#, Y#, Z#, isGlobal)
spSetNodeRotation(Node, X#, Y#, Z#, isGlobal)
spSetNodeScale(Node, X#, Y#, Z#, isGlobal)
spGetNodePositionX#(Node, isGlobal)
spGetNodePositionY#(Node, isGlobal)
spGetNodePositionZ#(Node, isGlobal)
spDoNodeMove(Node, X#, Y#, Z#)
spDoNodeTranslate(Node, X#, Y#, Z#)
spDoNodeTransform(Node, X#, Y#, Z#)
spDoNodeTurn(Node, X#, Y#, Z#)
spSetNodeVisible(Node, isVisible)
spGetNodeVisible%(Node)
spSetNodeColor(Node, ColorRed, ColorGreen, ColorBlue, ColorAlpha)
spNodeLookAt(Node, X#, Y#, Z#)
spSetNodeParent(Node, Parent)
spGetNodeParent%(Node)
spAddEntityTexture(Entity, Texture, Level)
spRemoveEntityTexture(Entity, Level)
spDoEntityTextureTranslate(Entity, Level, DirectionX#, DirectionY#)
spDoEntityTextureTransform(Entity, Level, SizeWidth#, SizeHeight#)
spGetEntityTexture%(Entity, Level)
spUpdateModeling(Entity, isUpdateNormals)
spUpdateNormals(Entity)
spDoMeshTranslate(Entity, DirectionX#, DirectionY#, DirectionZ#)
spDoMeshTransform(Entity, SizeX#, SizeY#, SizeZ#)
spDoMeshTurn(Entity, RotationX#, RotationY#, RotationZ#)
spFitMesh(Entity, PositionX#, PositionY#, PositionZ#, SizeWidth#, SizeHeight#, SizeDepth#)
spFlipMesh(Entity, isSelfModeling)
spSetEntityWireframe(Entity, Mode)
spSetEntityColor(Entity, ColorRed, ColorGreen, ColorBlue, ColorAlpha, Surface)
spCreateSurface%(Entity)
spSelectSurface(Entity, Surface)
spGetMeshSurfaceCount%(Entity)
spGetMeshVerticesCount%(Entity, Surface)
spGetMeshTriangleCount%(Entity, Surface)
spGetVertexCoordX#(Entity, VertexIndex)
spGetVertexCoordY#(Entity, VertexIndex)
spGetVertexCoordZ#(Entity, VertexIndex)
spSetVertexCoord(Entity, VertexIndex, X#, Y#, Z#)
spGetVertexTexCoordX#(Entity, VertexIndex, Level)
spGetVertexTexCoordY#(Entity, VertexIndex, Level)
spSetVertexTexCoord(Entity, VertexIndex, U#, V#, TexLevel)
spGetVertexColorRed%(Entity, VertexIndex)
spGetVertexColorGreen%(Entity, VertexIndex)
spGetVertexColorBlue%(Entity, VertexIndex)
spGetVertexColorAlpha%(Entity, VertexIndex)
spSetVertexColor(Entity, VertexIndex, ColorRed, ColorGreen, ColorBlue, ColorAlpha)
spGetVertexNormalX#(Entity, VertexIndex)
spGetVertexNormalY#(Entity, VertexIndex)
spGetVertexNormalZ#(Entity, VertexIndex)
spSetVertexNormal(Entity, VertexIndex, X#, Y#, Z#)
spAddEntityVertex(Entity, X#, Y#, Z#, U#, V#, ColorRed, ColorGreen, ColorBlue, ColorAlpha)
spAddEntityVertexEx(Entity, X#, Y#, Z#, NX#, NY#, NZ#, U#, V#, Fog#, ColorRed, ColorGreen, ColorBlue, ColorAlpha)
spRemoveEntityVertex(Entity, VertexIndex)
spAddEntityTriangle%(Entity, Vertex1, Vertex2, Vertex3)
spRemoveEntityTriangle(Entity, TriangleIndex)
spSetEntityVertexCounter(Entity, VertexCounter)
spAddEntityVertexCounter(Entity, VertexCounter)
spEntityDetectCollision%(Entity, CollisionID)
spGetEntityCollisionCount%(Entity)
spGetEntityCollisionPointX#(Entity)
spGetEntityCollisionPointY#(Entity)
spGetEntityCollisionPointZ#(Entity)
spGetEntityCollisionNormalX#(Entity)
spGetEntityCollisionNormalY#(Entity)
spGetEntityCollisionNormalZ#(Entity)
spGetEntityCollisionObject%(Entity)
spSetEntityCollisionUpdate(Entity, isCollUpdate)
spGetEntityCollisionUpdate%(Entity)
spSetEntityShader(Entity, Shader)
spSetEntityShininess(Entity, Intensity#)
spGetEntityShininess#(Entity)
spGetEntityPerspectiveDistance#(Entity)
spSetEntityLighting(Entity, isLighting)
spGetEntityLighting%(Entity)
spSetEntityOrder(Entity, Order)
spGetEntityOrder%(Entity)
spSetEntityNormalsType(Entity, NormalsType)
spGetEntityNormalsType%(Entity)
spSetEntityBlendingMode(Entity, BlendingMode)
spSetEntityBlendingModeEx(Entity, Blend1, Blend2)
spSetEntitySphereMapping(Entity, Type, TexLevel)
spCopyEntity%(Entity)
spRenderEntity(Entity)
spSetCameraPerspective(Camera, ViewportLeft, ViewportRight, ViewportTop, ViewportBottom, NearClipping#, FarClipping#, ZoomAngle#)
spCameraLookAt(Camera, X#, Y#, Z#)
spSetSpriteBasePosition(Sprite, X#, Y#)
spGetSpriteBasePositionX#(Sprite)
spGetSpriteBasePositionY#(Sprite)
spSetSpriteLighting(Sprite, isLighting)
spGetSpriteLighting%(Sprite)
spSetSpriteOrder(Sprite, Order)
spGetSpriteOrder%(Sprite)
spSetSpriteBlendingMode(Sprite, BlendingMode)
spSetSpriteBlendingModeEx(Sprite, Blend1, Blend2)
spGetSpritePerspectiveDistance#(Sprite)
spSetSpriteTexture(Sprite, Texture)
spRenderSprite(Sprite)
spShaderBegin(Shader)
spShaderEnd()
spSetShaderConstant1%(Shader, Name$, Value#)
spSetShaderConstant2%(Shader, Name$, X#, Y#, Z#)
spUpdateAnimations()
spUpdateAnimation(Animation)
spGetAnimation%(Node)
spDoAnimate(Animation, AnimType, AnimTime, Start, End)
spDoAnimateNode(Animation, AnimType, AnimTime, Start, End)
spDoAnimateMesh(Animation, AnimType, AnimTime, Start, End)
spDoAnimateSkeleton(Animation, AnimType, Start, End)
spIsAnimate%(Animation)
spIsAnimateNode%(Animation)
spIsAnimateMesh%(Animation)
spIsAnimateSkeleton%(Animation)
spGetAnimLengthNode%(Animation)
spGetAnimLengthMesh%(Animation)
spSetAnimSeekNode(Animation, AnimSeek#, AnimSeekSeq)
spSetAnimSeekMesh(Animation, AnimSeek#, AnimSeekSeq)
spPauseAnimation(Animation, isPaused)
spPauseAnimationNode(Animation, isPaused)
spPauseAnimationMesh(Animation, isPaused)
spPauseAnimationSkeleton(Animation, isPaused)
spStopAnimation(Animation)
spStopAnimationNode(Animation)
spStopAnimationMesh(Animation)
spStopAnimationSkeleton(Animation)
spSetAnimationNode(Animation, Node)
spGetAnimationNode%(Animation)
spSetAnimationMesh(Animation, Mesh)
spGetAnimationMesh%(Animation)
spRenderAnimationSkeleton(Animation, Camera)
spSetVolumetricShadow(isVolumetricShadow)
spSetShadowColor(ColroRed, ColorGreen, ColorBlue, ColorAlpha)
spSetShadowLength(Length#)
spAddEntityCastCloud(Entity)
spRemoveEntityCastCloud(Entity)
spAddLightShadowSource(Light)
spRemoveLightShadowSource(Light)
spUpdateStencilShadow(Entity)
spCreateListener%(NearHearing#, FarHearing#, NearVolume#, FarVolume#)
spDeleteListener()
spLoadSound%(Filename$, Quality, Count)
spPlaySound(Sound, isLooped, isVectorUsing)
spStopSound(Sound)
spPauseSound(Sound, isPaused)
spUpdateSounds3D(PositionX#, PositionY#, PositionZ#, CamYaw#)
spUpdateSounds()
spIsSound%(Sound)
spSetSoundVolume(Sound, Volume#)
spGetSoundVolume#(Sound)
spSetSoundSeek(Sound, Seek#)
spGetSoundSeek#(Sound)
spSetSoundSpeed(Sound, Speed#)
spGetSoundSpeed#(Sound)
spSetSoundPan(Sound, Balance#, Volume#)
spGetSoundPan#(Sound)
spSetSoundPosition(Sound, PositionX#, PositionY#, PositionZ#)
spGetSoundPositionX#(Sound)
spGetSoundPositionY#(Sound)
spGetSoundPositionZ#(Sound)
spCreateRecord%()
spCloseRecord(Record)
spBeginRecording(Record)
spEndRecording(Record)
spSaveRecord(Record, Filename$)
spIsRecording%(Record)



puki(Posted 2009) [#21]
To be honest, you are going to need more than just one demo example for this.

Plus, some of your tutorial links on Sourceforge are dead.


Still, Blitz3D is becoming more and more exciting as it gets older and older - FastLibs, Xors3D, and now this help to keep the little fellar going - plodding along, tongue hanging out, tail wagging.


LogBomb(Posted 2009) [#22]
Also in the blitz example if you change:

Const Test = 2

to 1, 2 or 3, it changes what the example shows.

Logbomb


Yasha(Posted 2009) [#23]
The initial demo looks nice. However, changing the example to number three made it very, very slow. Also, I tried changing the first parameter of spCreateDevice to DRIVER_DIRECT3D9 and all I got was a black screen; when I changed it to DRIVER_SOFTWARE it only rendered an unanimated, untextured, flat-shaded model. Do other parameters also need to change to change driver or is this a bug? And is there any known reason why the third demo option might run slowly?


LogBomb(Posted 2009) [#24]
The 3rd demo option is slow because it is rendering the shadow of the animated dragon. Really, the shadow system is better for static models.

The DX9 renderer is still being worked on, as the engine was first designed with OpenGL, I think it will take some time before the DX9 option is fully functional.

Logbomb


LukasBanana(Posted 2009) [#25]
LogBomb is right =)
OpenGL was the first renderer, primal with version 1.5 I redesigned the architecture of renderer to integrate other renderers.
The current C++ version 1.7 supports Direct3D9 very good.
The Wrapper is not so up to date. But when more people are interessted in the wrapper, I will update it soon.
Also the software-renderer is now able to render perspective- texture-mapping and depth-buffering, sphere mapping etc.

And yes, the shadows are just stencil shadows (used in Doom3 but old technic) and very slow for animated models.

I will try to refresh the wrapper in the next days or week ;-)

Lukas

EDIT:

To see the current state of D3d9 support, take a look at the pre-compiled tutorials of the full download package ;-)


LukasBanana(Posted 2009) [#26]
Hi again,

because I'm a very impatient person, I updated the Wrapper for some minutes to version 0.5.1 temporarly. But the next relase will although come soon :-)

This current version supports Direct3D9 and the SoftwareRenderer and is (for the wrapper) up-to-date such as the version I have at my PC.
Give it a try and tell me how it works =)

Kind regards,
Lukas

EDIT:

! in this version, the blitz-example does not support the "const Test = 3", the shadow will not be updated by the animation


LogBomb(Posted 2009) [#27]
Awesome, DX9 and Software Render are working now (^_^)

Just a couple of notes:

The new extra parameters have only been added to 1 of the paths:

...model\dragon.md2", "", 0 )

The extra ,"", 0 need to be added to the 2 other paths.

DirNameB3D$+"samples\mak\

Needs to be changed on all 3 paths to match the current blitz3d folder structure:

DirNameB3D$+"samples\Blitz 3D Samples\mak\

jpeg62.dll needs to be added to the download.

I notice that even in OpenGL mode, the shadowing has changed. With demo option 2, the shadowing on the dragon appears to be popping in 1 poly at a time, instead of the smooth transition in the old example.

Looking very good though, and it is great to get such a quick update :D

Logbomb


El Gigante de Yeso(Posted 2009) [#28]
I was wondering, is the collision detection & response system funcionality the same as in Blitz3D?


Naughty Alien(Posted 2009) [#29]
..is there version for Bmax?


LukasBanana(Posted 2009) [#30]
I think it should run on general BlitzBasic (B3D, Bmax, Bplus etc.)
It's just important that your version is able to run userlibs ;-)


_PJ_(Posted 2009) [#31]
This looks ewxtremely powerful, but, call-me-stupid - Should I download the engine AND the wrapper to use with B3D ?


LukasBanana(Posted 2009) [#32]
Normally you only have to download the Wrapper to use it with B3D.
But if you need the other DLLs (opengl32.dll etc.) you have to download both.

PS: insure yourself you have the "jpeg62.dll". I forgot to upload this file, but I will fetch it later.

Lukas


Naughty Alien(Posted 2009) [#33]
>>I think it should run on general BlitzBasic (B3D, Bmax, Bplus etc.)
It's just important that your version is able to run userlibs ;-)<<

..do you mind to demonstrate this for Bmax?...


LukasBanana(Posted 2009) [#34]
No, I just say your Blitz... version must be able to run userlibs ;-)

-> It should with all versions. Bmax, B3D, Bplus etc.

But I have only B3D so I cannot test it with other versions than Blitz3D.
So just test it out!

Lukas


Naughty Alien(Posted 2009) [#35]
..well..you can download demo version of Bmax and give it a try..far as i know, bmax doesnt have such thing like userlibs exposed in B3D but modules..


LukasBanana(Posted 2009) [#36]
I created a new forum for all my projects as well for the SoftPixel Engine.
This new forum is complete in english for international discussions.
You'll also find a sub-forum for the wrapper.

http://www.hlc-games.de/forum/

The forum has multiple styles, one of these is the most used style from phpBB2.
No longer commercials and I'll change the phpBB images in a few days.

Lukas


LukasBanana(Posted 2009) [#37]
I'm sure that sounds really interesting for you all:

Somebody of the German Blitz3D Community (http://www.blitzforum.de/forum/) has joined my forum (http://www.hlc-games.de/forum/) and is working at a 'third party' SPE Wrapper for Blitz3D.

This wrapper has the same functions like Blitz3D self (e.g. "CreateCamera", "RenderWorld" etc.) so you only need to include the "SoftPixelEngineWrapper.bb" file at the top of your application.

Here is the work log in my forum to see the status:
http://www.hlc-games.de/forum/viewtopic.php?f=13&t=52

This shoudl be a good solution to come away from DX7 and go to DX9 and OpenGL 2 =)


Kryzon(Posted 2009) [#38]
It's invigoratingly generous what you're doing, sharing your work for free.

Thank you so much.


EDIT: I didn't quite get what you meant with this, from the FAQ:


All objects must positionated, scaled and rotated reverse to all the cameras. Don`t forget this when you write a fire effect!




LukasBanana(Posted 2009) [#39]
Nice to hear that ^^

About your question of the FAQ:
1.) Summarized: a problem is not only the amount of triangles in scene, the amount of objects is also a problem.
2.) The type transformation has been changed in version 1.8. Now it should be equal to Blitz3D.


LukasBanana(Posted 2009) [#40]
Finally a new (third party) wrapper of the SoftPixel Engine for BlitzBasic by "T-Team" has been released.

This first version is a wrapper, which allows you to use the engine (within its three renderers Direct3D9, OpenGL2.0, Software) by just including the WrapperFile.

Use your old code an write at the top of your sources:
Include "SoftPixelEngineWrapper.bb"

That is all! :D

Certainly the wrapper is in the first steps but in the download-package are some examples to show the integration and simplicity ;-)

Here is the download link:
http://softpixelengine.sourceforge.net/download/SPEngineWrapperBB(T-Team-V1.0).rar


Naughty Alien(Posted 2009) [#41]
hey LukasBanana, is there any way to see this engine on Bmax??


LukasBanana(Posted 2009) [#42]
I don't know how to write a wrapper for BlitzMax, if there are any differences.
I only have Blitz3D. But I thought BlitzBasic is generally using the same syntax and as well its userlibs.