GMan and gg.IrrB3D

BlitzMax Forums/BlitzMax Programming/GMan and gg.IrrB3D

Filax(Posted 2005) [#1]
Great stuff !!!! thanks to release this ! i love you !

Do you plan shader FX loading ?

Raaaah lovely :)


gman(Posted 2005) [#2]
@filax - lol :) dont throw me much love yet! when its finished and as compatible as it can be with B3D then maybe ;) as for the shader stuff, since its based on Irrlicht, the shader functionality of Irrlicht will be there (as is all functionality of Irrlicht) but for things like shaders, particles, and gui i am planning on having some B3D-esque functions to make those a bit easier to use. also, another goal of mine is to hopefully try to ease the pain of going to a OOP-based system for folks not familiar with OOP. similar to BMAX, each function is really a method on an object so you can use or slowly switch to OOP at your leisure.

@everyone - ive had nearly 50 downloads. any comments yet? good progress, sucks?


Filax(Posted 2005) [#3]
It's a really good news !! I have a comment about synthax

I'm a little bit disturbed by the : ib3d_ it's a little bit
long to write ? no ?

So i'm trying to make a simple ball turning.



My problems are :
I don't understand very well the irrlicht unit ? under b3d
a scaleentity(myentity,3,3,3) give normal scaling but
under irrlicht is very very big ?

The shininess ? i have try many many value but without good
result ? in your doc your are talking about a MaterialIDX ?
what this ?

So it's a very great piece of code ! i hope that you continue !


gman(Posted 2005) [#4]
thx filax! this is exactly the kind of stuff im looking for.


I'm a little bit disturbed by the : ib3d_ it's a little bit long to write ?


seems to be the longest standing issue with my stuff is the prefixs :) even with framework command, my goal is simply to avoid confusion. if Max3D is anything like Max2D, it will attempt to replicate many of the commands of B3D. i just trying to pre-emptively avoid any confusion that may occur because of this.


ib3d_Graphics3D(640,480,32,True)


just as a side note, looks like you are trying to enable the stecil buffers for shadowing. i know i altered the parameters to ib3d_Graphics3D() but it looks like its an older version thats out there. not sure what happened. with the version of ib3d_Graphics3D() that you have there is no way to enable the stencil buffers for shadowing. you can do it by calling the Graphics3D method on the ib3d_engine type (see the API doc). there is a global reference to the engine.


I don't understand very well the irrlicht unit ?


again, this is exactly the type of inconsistancies im looking for. there must a ratio that needs to be worked out between the 2 APIs for scaling. if i can get that ratio then hopefully can work out a conversion and integrate it. i will take a look at this very soon since im currently on the terrain stuff and the samples i have involve scaling.


The shininess ? i have try many many value but without good
result ? in your doc your are talking about a MaterialIDX ?
what this ?


in Irrlicht, each entity can have multiple materials associated with it. in range from 0 to entity._node.getMaterialCount(). the MaterialIDX is a way to set the option for multiple materials. as for why its not working, its probably due to shininess not being implemented in the OpenGL driver yet and that is what the Graphics3D command is defaulting to. really need to get more options into that command... for now, look at the Graphics3D() method on the engine to initialize the graphics and pass in the directx driver constant.


i hope that you continue !


making progress anyway :) keep up the testing and thx again :)


Filax(Posted 2005) [#5]
Hi Gman :)

You are right about prefixs, it's not really a problem :)
copy / cut powaa :)

About Graphics3D() you say : you can do it by calling the
Graphics3D method on the ib3d_engine type (see the API doc)

But in the API Doc a see only a parameter "deviceType"
Your are talking about DeviceType ? i have play a little
bit with your wrapper and for this parameter i see only
EDT_OPENGL or EDT_DX8 etc ... I must acknowledge that it
is a little obscure for me :)

Ok for the unit :) But if you want a reference, maybe the
solution is : Make the same simple scene with identical
coordinate beetween blitz3d and blitzmax to be sure that
you have the same unit conversion ?

For the shininess you say : "for now, look at the Graphics3D()"

Are you talking about gg.IrrB3D or Irrlicht ?
because if its gg.IrrB3D i don't see source code ?
and go directly under the irrlicht API "is not my cup
of tea" like say in french :)

If you want GMan when you spread a more functional release
i can help you to write examples with nice graphics ?
because i'm sure that your wrapper is a great piece of code
and i want to promote it :) i have post some news about
gg.IrrB3D on my forum and the french blitzmax user can't
wait now :) !


seyhajin(Posted 2005) [#6]
really good work gman, continue for communauty :)
more,more more .... :)


Progi1984(Posted 2005) [#7]
If you are not married, I... no, i laugh !

You are doing a very good job ! I follow that since the beginning and it's the first time that i want to say you what I think !

Good work !


Filax(Posted 2005) [#8]
Do you agree GMAn ?


klepto2(Posted 2005) [#9]
I would really try your work, as the pure Irrlicht Mod is excellent but unfortunatly with irrb3d I always get this error:

D:/Programme/BlitzMax/mod/gg.mod/irrb3d.mod/irrb3d.release.win32.a(irrb3d.bmx.release.win32.o)(data+0x1b4): undefined reference to `_brl_linkedlist_TList_DataType'

by using your sample. Any Idea why?


gman(Posted 2005) [#10]
@klepto2 - sry bout that. compiled under the wrong version. use this one and you should be good to go:

BMAX v110 compatible 2005_11_10 gg.IrrB3D Mod Pre-Alpha

@french folks - guess i have a few fans over there :) thx for the comments. ill do my best :)

@Progi1984 - while i appreciate the offer... happily married with 2 cute little co-developers :)

@filax - there is a global variable _g_ib3d_engine that gives you access to the methods on the engine. to test the shininess (after looking at the code, stencil buffers are on by default), instead of calling ib3d_Graphics3D(), call:
_g_ib3d_engine.Graphics3D(640,480,32,0,True,False,EDT_DIRECTX9)

that should get it to use the DX drivers.


Filax(Posted 2005) [#11]
Hi Gman

Hi have try but ... the compiler result :
DirectX9 Driver was not compiled into this dll. Try another one. Error: Could not load built-in Font.

I have try many DLL type to do but nothing seem to work with
shininess




gman(Posted 2005) [#12]
@filax - ah, you are using the distro from Irrlicht. unfortunately that doesnt come with DX support built-in. you can download my build of Irrlicht which is isdentical to the regular (as in i have not modified any of the functionality), but it includes DX support. see my latest post here if you are interested in DX support.


Filax(Posted 2005) [#13]
HI :)

I have try with this distro : IrrDX_v0_12.zip
But seem to crash blitzmax : Application error Cx000005 ...

It's not really a problem for the moment :) i'm waiting
for a more advanced version of gg.IrrB3D :)

Keep-up good job :)


[I]pnose(Posted 2005) [#14]
Really great !!!!!


Progi1984(Posted 2005) [#15]
excuse me filax, where do you find this file IrrDX_v0_12.zip ? i couldn't fint it !


Vectrex(Posted 2005) [#16]
nice work so far.

ps my personal version will be... edit->FindReplace "ib3d_" -> "" ;) hehe, even Max3D module will use the framework command so no problems I can see (not to mention it'll be a while before that appears), but I'll shut up now ;)


Filax(Posted 2005) [#17]
HI GMan i'm trying to understand better irrlicht

Do you know how change a light color and radius after
creation ? i have find for setposition but in the API doc i
don't find a method to change light color and radius ?

I have this





gman(Posted 2005) [#18]
use the getLightData() method of T_irrILightSceneNode. this returns the T_irrSLight structure that is controlling the light. look up SLight in the irrlicht manual to see the properties available. each property corrosponds to get*() methods in the blitzmax version. so:

getAmbientColor:T_irrSColorf()
getDiffuseColor:T_irrSColorf()
getSpecularColor:T_irrSColorf()

these return references to T_irrSColorf(). changing this directly changes the light color info.

radius has both a get() and set() since its a variable and not a type so:

getRadius:Float()
setRadius(newrad:Float)

HTH.


Haramanai(Posted 2005) [#19]
GMan are you going to do the samle 14 wich is to render to a window that is not created by irrlicht? As you mentioned sometime back to your worklog and now the GUI is out.


gman(Posted 2005) [#20]
@Haramanai - yes i am. it is working but i need to clean up some of the event mechanism details. i should have it up sometime this evening.


gman(Posted 2005) [#21]
@Haramanai - the drawing in the child area is working fine, but im having some real trouble with the event mechanism. hopefully i can get this resolved....

@everyone interested in gg.IrrB3D - there has been a slight design change. the worklog has details.