Fast Extend library — Thread 4

Blitz3D Forums/Blitz3D Userlibs/Fast Extend library — Thread 4

BlitzSupport(Posted 2009) [#1]
Continued from this thread.


FlagDKT(Posted 2009) [#2]
...all you need is a cubemap, surely? At least that's how I implement what I would consider to be cel shading.

The hardest part is the outline.


MikhailV(Posted 2009) [#3]
@ZJP: About your picture (with anaglyph) — it's simple, use ColorFilter function (example FastExt_Example_ColorFilter.bb) and two renderWorld:




MikhailV(Posted 2009) [#4]
@Naughty Alien: :) Not certain that DirectX7 supports hardware skinning. I study this subjects. I too remember demonstration from GrumpyOldMan (may be ask him?). I think that is trick and not hardware. I too can operate with vertices from dll, this not in a complicated way, but speed will not above, than in Blitz3D. Possible try to use SSE (SSE2) for calculation...


MikhailV(Posted 2009) [#5]
About "toon shading" — good idea to use cubemaps for this effect, but this not real to use in real game. Brrr... :) It is necessary to peer into postprocess effects, I shall try it.


Yasha(Posted 2009) [#6]
this not real to use in real game


Obviously not for the outlines... is there any reason why you wouldn't use this for the shading? I haven't noticed any significant slowdown, especially thanks to the wonderful SetCubeAlign command.


MikhailV(Posted 2009) [#7]
@Yasha: I think - it a complicated way to prepare materials (textures and meshes) for such shading. This is a single problem, IMHO :)


Yasha(Posted 2009) [#8]
celsphere=CreateSphere(16)
ScaleEntity celsphere,10,10,10
FlipMesh celsphere
EntityFX celsphere,1
celtex=CreateTexture(2,256)		;Texture for the sphere, not the cel map itself
SetBuffer TextureBuffer(celtex)
Color 120,120,120:Rect 0,90,2,52	;Colours - 255,96,64 looks sharp
Color 80,80,80:Rect 0,142,2,115
Color 255,255,255:Rect 0,0,2,90
SetBuffer BackBuffer()
EntityTexture celsphere,celtex
EntityColor celsphere,255,255,255	;Light colour/brightness, so characters aren't fullbright in the dark!

PositionEntity celsphere,0,-500,0		;Put it somewhere out of sight later

celcam=CreateCamera()					;Camera for cel map
PositionEntity celcam,EntityX(celsphere,1),EntityY(celsphere,1),EntityZ(celsphere,1)
CameraViewport celcam,0,0,celdetail,celdetail
CameraProjMode celcam,0

celshadow=CreateTexture(celdetail,celdetail,1+128);+256)		;The cel shading texture
SetCubeMode celshadow,2

TextureBlend celshadow,2
ctexb=TextureBuffer(celshadow)
updatecelshading(celshadow,ctexb,celcam)     ;Do the six-sided render

EntityTexture character,celshadow,0,1
EntityFX character,1
celangle=CreatePivot(character)
SetCubeAlign celshadow,celangle


Not so complicated...

Your SetCubeAlign command means the shading can follow the light around without rerendering the cubemap (AFAIK not possible in vanilla B3D, or at least the alternative would be worse) so the performance hit is negligible.

Sorry if I've completely lost the plot thread and you're talking about something else entirely, which ...often happens.


puki(Posted 2009) [#9]
ColorFilter just seems to toggle Red, Green and Blue as either off or on.

Can the user alter the shade of the colours - ie have a different shade of red? It would be handy if these values ranged up to 255 or similar.


Vorderman(Posted 2009) [#10]
Is it possible to get a specular effect working using Fastlib?

I've seen the wall and floor reflections demo which is sort of the right effect but not quite there - what I need is a specular highlight across a texture relative to the light source (in this case looking down onto a road from 45 degrees with the sun at about 70 or 80 degrees above).

You can apply a bump map - I can't see any way of applying a specular map.


MikhailV(Posted 2009) [#11]
@puki: Excuse me, I can not do this. This not possible in this instance.

@Vorderman: Find the good example without using the library. Understand the principle/algorithm. Hereon you will ready for use FastExt library for improvement of the specular effect...


Vorderman(Posted 2009) [#12]
Sorry Mikhail, I don't quite understand your post - I know exactly what effect I am after, just the typical application of a specular map over the diffuse map to give specular highlights dependent upon the specular texture and light direction relative to the camera (currently without a normal map as the texture is quite a long way from the camera).

Here's an example image showing the specular map against a grey diffuse, this is the effect I am looking to replicate but I can't seem to get FastExt to do it.



And here is a typical example of a diffuse and specular map (ignore the bump map).

http://www.indigorenderer.com:8000/joomla/components/com_openwiki/lib/exe/fetch.php?cache=cache&media=http%3A%2F%2Fimg339.imageshack.us%2Fimg339%2F4916%2Fstonecq5.jpg


Vorderman(Posted 2009) [#13]
Aha, got it working at last:




ZJP(Posted 2009) [#14]
@MikhailV: Thx for the source ;)

JP


Mike0101(Posted 2009) [#15]
I would like to use specular effect in a cave scene (wet look terrain). Is this a slow process? Do you have any experience?


Vorderman(Posted 2009) [#16]
Once I'd finally figured out how to do it it's actually really simple - it's using a cubemap aligned to the camera (as in the refletive walls demo) but layered so it masks out the specular texture instead of the reflection.

I don't have my code here at work so I'll post it up tonight, unless somebody else has a better system in the mean time.


Vorderman(Posted 2009) [#17]
OK, here's the code for loading textures to get a nice specular effect:

The textures you need:

TEX_diffuse.tga : just a normal diffuse texture
TEX_specular.tga : a normal specular texture
TEX_specularCUBE.tga : the cubemap texture that comes with the Fastlib libraries (you'll find it at "media\specular.jpg")


cube = CreateCube()

texture_D = LoadTexture("TEX_diffuse.tga")
TextureBlend texture_D , 3

texture_S = LoadTexture("TEX_specular.tga")
TextureBlend texture_S, FE_SPECULAR2			;SPECULAR0 or ADD(3) would be good for water, SPECULAR2 for solid object

specular_CUBE = LoadTexture( "TEX_specularCUBE.tga",1+128 )
SetCubeMode specular_CUBE , 1
TextureBlend specular_CUBE , FE_MULTIPLY4X
SetCubeAlign specular_CUBE , LIGHT_light1

EntityTexture cube , texture_S , 0 , 0
EntityTexture cube , specular_CUBE , 0 , 1
EntityTexture cube , texture_D , 0 , 2



Sake906(Posted 2009) [#18]
I had no idea those texture blending modes existed ... care to explain them?


Vorderman(Posted 2009) [#19]
They are new blend modes added in FastExt, not sure exactly what they all do but MULTIPLY4X is a 4x multiply blend.


SabataRH(Posted 2009) [#20]
Nice effect!, thanks for sharing.


Mike0101(Posted 2009) [#21]
Cool. Where is position and blendmode of normal-bump map in this system?


Vorderman(Posted 2009) [#22]
I think you add the bump map as the base layer (0), then move all the others up, but I also seem to recall having to add the bump again just below the diffuse layer so that both the specular and diffuse textures are affected.

So you'd have :
0 - BUMP (blend FE_BUMP) - this bumps the specular layer above it
1 - SPECULAR (blend FE_SPECULAR2)
2 - SPECULAR CUBE (blend FE_MULTIPLY4X)
3 - BUMP (blend FE_BUMP) - this bumps the diffuse layer above it
4 - DIFFUSE (blend normal)

I think that works, but I can't remember 100%.


MikhailV(Posted 2009) [#23]
Oh. Don't use cubemaps with bump texture (EMBM), it's incorrect work on GeForce's! ;)
p.s. Use DOT3 for specular map in your example...


Mike0101(Posted 2009) [#24]
How can I change the color of a normalmapped model for simulate night-day cycle? I was try to change light color and ambientlight color but does not work.


OJay(Posted 2009) [#25]
hm...getting mavs on "setbuffer backbuffer()" and "clscolor" calls with the appropriate lines highlighted in fastext.bb...even when adding those calls in the sample files of fastext...did i miss something?

tried with blitz3d v1.99 and 1.100 and fastext 1.13trial...


El Gigante de Yeso(Posted 2009) [#26]
You need to startup the FastExt lib right after settings the Graphics3D
Graphics3D(800, 600, 32, 2)
InitExt()
SetBuffer(BackBuffer())



OJay(Posted 2009) [#27]
thx :)


Vorderman(Posted 2009) [#28]
I'm getting a crash when trying to use any post-processes after using a ClearWorld - it crashes with a MAV in function RenderPostProcess% at RenderPostProcess_ flags,x,y,width,height.

The program is very complex but basically I am loading a front end scene, creating a camera, lights etc.. then using a motion blur post-fx. Then I ClearWorld() when exiting the front end and set up a completely new scene with new cameras, lights etc..., and in this main game loop if I use any post process effects then I get the MAV.

If I remove the ClearWorld() then it works OK - any ideas?


MikhailV(Posted 2009) [#29]
ClearWorld function kill all textures used in Postprocess system.
Don't use ClearWorld before RenderPostprocess function - it's wrong!

p.s. See FastExt_Example_ChangeResolution.bb as example.


Vorderman(Posted 2009) [#30]
OK, thanks Mikhail, I'll check out that example.
Is there any way to manually re-initialise the post-process textures?

Also, I'm having a problem where the post process motion blur will not work in my main game loop - in the front end the motion blur works very nicely, but once I delete all the cameras, lights etc.. and then move to the main loop with new cameras,lights etc.. the motion blur refuses to work, despite all the other blur and post-process effects still working OK.

I must be missing something obvious here...is there some problem with using the motion-blur post-process with one camera and then deleting that camera and creating a new one?

Edit: Strangely, even if I remove the front-end completely it still won't work in the main game loop - I don't get any errors, just no motion blur....there must be something in my main program that's preventing the motion blur from being rendered, although I can't imagine what that could be.


MikhailV(Posted 2009) [#31]
@Vorderman: Error in your source codes, I am absolutely assured of it.
p.s. Can be many reasons for it. There is no sense to guess it without an source codes. Read help files and study examples...


Mike0101(Posted 2009) [#32]
Mikhail, when will be release the next bugfree version of fastext?


Vorderman(Posted 2009) [#33]
Yeah, I'm convinced there's something in the setup of the scene that's causing this, but I can't find it as it all appears to work correctly....any ideas on what sort of setup might cause the post-process render to fail?


MikhailV(Posted 2009) [#34]
@Mike: The new version of the FastExt library will contain improved system of shadows (support LOD objects, receivers culling, correct tweening and etc.). "Bugfree" ??


Mike0101(Posted 2009) [#35]
No, your system is not buggy, it's a joke. I have a problem with shadow and autofade, you know.
Your system is the best thing in Blitz3D community, seriously.


puki(Posted 2009) [#36]
I'd like the ColorFilter bug fixed - ie the one whereby you only get 3 fixed-shade colours of red, green or blue.


Vorderman(Posted 2009) [#37]
OK Mikhail, I found the problem - calling UpdateShadows before the Renderworld is stopping the motion blur post-process working - comment out the updateshadows command and the blur works :(

UpdateShadows GAMEDATA\camera1, frameTween#
RenderWorld frameTween#

CustomPostprocessBlurMotion 0.6,  0, 0, 0.5,  0.5,  100.0,  100.0,  0,     0,  255,  255,  255
RenderPostprocess FE_BLURMOTION



Vorderman(Posted 2009) [#38]
Further info - the problem only occurs when assigning a shadow fade texture to the shadow system - remove the fade and the motion blur works. I shall keep investigating...


MikhailV(Posted 2009) [#39]
@Mike0101: AutoFade problem will is eliminated in v1.14

@puki: ColorFilter without bugs! It's DirectX limitation, seriously.

@Vorderman: Ok, I promise to solve this problem, please wait...


Happy Sammy(Posted 2009) [#40]
Hi MikhailV,

1. Could FastExt allow shaders to be used in Blitz3D?
2. Is FastExt designed based on DirectX 7 or 9?

Thanks in advance


nrasool(Posted 2009) [#41]
I know Im not MikhailV, but!!!

>1. Could FastExt allow shaders to be used in Blitz3D?
Nope, see below

>2. Is FastExt designed based on DirectX 7 or 9?
Its pure Direct x 7, Shaders are for direct x 9


Happy Sammy(Posted 2009) [#42]
Thanks, nrasool.


puki(Posted 2009) [#43]
Hey this thing supports spotlights!

"MikhailV's" docs say directional lighting only.

He lied and "puki" found out. He was keeping the good stuff secret.


I smell a 'Left 4 Dead' Blitz3D clone in the air.

Woof 'til it hurts.





MikhailV(Posted 2009) [#44]
@puki:

Yes, you right :) But the current shadow system was not ready for such light-source.

You can show an example for community? :p


Vorderman(Posted 2009) [#45]
Yeah, come on Puki - source please!!


puki(Posted 2009) [#46]
the current shadow system was not ready for such light-source


You seem to be saying I have enabled a future feature, not yet available. I must be some kind of scientist or a god?

"puki" has decided that what he has achieved must be so far beyond the rest of you that he is going to keep it to himself.


I'll leave you all here, on your knees. I need to go off now and do my morning neck excercises, as I fear that one day my massive brain will snap my neck.


MikhailV(Posted 2009) [#47]
@puki:
You seem to be saying I have enabled a future feature, not yet available. I must be some kind of scientist or a god?

You not understood. Library (DLL) can do this, but I had no time to do this possibility in ShadowsSimple.bb and ShadowsMultiple.bb source files, and create examples. This not it is difficult and no need to have a big intellect :) This will be in next version...


puki(Posted 2009) [#48]
Eh?

You cannot just steal my lighting system.

I tell you what; as you are my friend, you can put it in the next version for $50.00 USD.

:)


MikhailV(Posted 2009) [#49]
Thanks :D


puki(Posted 2009) [#50]
This is out of the kindness of my heart.

I may have other improvements that you can also purchase from me.

Remember this - there is nothing that you, or anyone, can offer me that I cannot simply take from you.

Someday - and that day may never come - I'll call upon you to do a service for me. Until that day, accept my greatness as a gift that you cannot afford.

:)


Mike0101(Posted 2009) [#51]
Thank you, Godfather


John Blackledge(Posted 2009) [#52]
Mikhail, you have to try to understand Puki's sense of humour.
The rest of us just have to live with it.


Mike0101(Posted 2009) [#53]
How can I export a well textured model from max8 in b3d? In max8 I have very well normalmapped-textured models (diffuse-specular-bump) and I would like to use in blitz with this library. With Blitzpipeline I can't export with texture. After export I get a model with two texture layers without bump and specular effect.


Vorderman(Posted 2009) [#54]
Any hints on how to get shadows cast from a spotlight instead of a directional?

Creating a light of type 3 (spotlight) instead of directional doesn't seem to help, I still get directional shadows that just rotate with the camera viewpoint, rather than being cast relative to the camera's position.

Do I need to hack about in the shadowsmultiple.bb file to get it working with spotlights?


MikhailV(Posted 2009) [#55]
@Mike0101: Pipeline not support new texture-blends from FastExt :( You can assign the necessary properties to textures in your program only. Or change blends for textures in b3d file with HEX-editor.

@Vorderman: Please wait FastExt 1.14


Mike0101(Posted 2009) [#56]
Can I modify the setcubemode parameter in b3d file with a hexaeditor? Is the a registered parameter in file?


MikhailV(Posted 2009) [#57]
@Mike0101: I have not found SetCubeMode parameter in the b3d-specification.


Mike0101(Posted 2009) [#58]
thx:( This is big problem. Without this setting very hard to create well textured models with nextgen look.


SabataRH(Posted 2009) [#59]
Has anyone been able to get any of the post processing effects to work when shadowing is enabled? I haven't as of yet.


Vorderman(Posted 2009) [#60]
Yes, they do work. Just adding the post process setup and render after your renderworld should do the trick.


RifRaf(Posted 2009) [#61]
MikhailV,

is there any way to get around dof messing with alpha objects / textures .. I cant renderentity every single alphad thing in my game :) heres a shot of the problem. What you see there the obect renders into the dof feild, even though the obect is up close




Cronos(Posted 2009) [#62]
Hi I bought the fastcompleteset ( fastextension + fastimage + fasttext )- a great libraries , a stupid question , I can use fastimage_1_73 in Blitz3D_SDK_v1.04 and BlitzMax ???


MikhailV(Posted 2009) [#63]
@RifRaf: Transparent objects not change ZBuffer values. I can offer to render transparent objects after using the DOF postprocess effect. I understand, this uncomfortably, but other decisions does not exist. In following version of the library will be an useful function, which can help you to separate transparent objects from opaque.

@Cronos: I shall create libraries only and shall not create wrappers for other languages. You have an example for PureBasic, and you themselves can create wrapper for BMax. Who that already did this work earlier, can help you!


Mike0101(Posted 2009) [#64]
MikhailV, do you have any news about next release of Fastext? New features, effects, release date, something special? thnx


puki(Posted 2009) [#65]
There has been an update today for Blitz3D - this breaks much of the lib. Many trap as a buffer MAV.

Needs fixing.

I need my anaglyph.


MikhailV(Posted 2009) [#66]
The following release will be in the beginning of July.
Update for Blitz3D? Where?

*EDIT: Has already found :)


Vorderman(Posted 2009) [#67]
I'd love to see a FastInput library that will let me use all the sticks on my XBox360 pad and apply force feedback to my steering wheel!


Vorderman(Posted 2009) [#68]
Mikhail, I've just noticed that in your reply to my post about the specular effect you said this :

"p.s. Use DOT3 for specular map in your example..."

What did you mean here? Replace the cubemap with a DOT3 map?


MikhailV(Posted 2009) [#69]
@Vorderman: I can be mistaken :) The main thing - to you was possible to achieve result.


Vorderman(Posted 2009) [#70]
It was indeed, and I'm looking forward to the next Fastlib update!


puki(Posted 2009) [#71]
Have you managed to steal, I mean implement, my lighting system yet?

:)


Cronos(Posted 2009) [#72]
I see the example - Create dynamic DOT3 with SetCubeAlign function
a question , is possible use Object-Space Normal Maps
or only Tangent-Space Normal Maps ???


SabataRH(Posted 2009) [#73]
Any clue or ETA when fast extension will work with the latest blitz3d update 1.100? Waited for that damn copyentity() fix for along time and still can't use it.


MikhailV(Posted 2009) [#74]
@Cronos: May be. I have no 3d model with a specific texture (Object-Space Normal Map) for testing.

@Swampdonkey: Please wait...


Cronos(Posted 2009) [#75]
@MikhailV: I send you a example , Object-Space Normal Map.zip


MikhailV(Posted 2009) [#76]
@Cronos: For such models (with object-space normal map) it is not necessary cubemap. It is required to set color of model only, it is perfectly shown in an example.
p.s. Remove please the email from your message, I do not wish to receive a spam.


FlagDKT(Posted 2009) [#77]
Why I cannot hide and/or delete the light I created for shadows?
I just need it specify the direction for shadows, nothing more.
I don't want to light characters with that light!
And if I use a pivot or box instead of Light it always creates a default light.
I cannot hide it before renderworld because it has no effect...
I cannot even set lightcolor to black

EDIT: the only way is to modify shadowsimple.bb


MikhailV(Posted 2009) [#78]
You can use pivot, you mistaken or do some wrong.


Filax(Posted 2009) [#79]
Hi MikhailV

Just a test with the shadows method :) Can't wait to get autocast on the objects :) Many thanks to create this great lib...

You can use the images for your site !










GIB3D(Posted 2009) [#80]
Just got the Fast Complete Set a couple days ago and I'm happy with it so far. It's really easy to use, I set up shadows in just a few seconds. I've heard that it(the Fast products) doesn't work with the new blitz version so I'm not installing the update till it's fixed.


LogBomb(Posted 2009) [#81]
Those screenshots are sensational!!


MikhailV(Posted 2009) [#82]
@Filax: On, man, great work! Perfect! You do not cease to surprise me. All the same I recommend to use shadow system only for dynamic objects. For static objects it is possible to use a classic lightmaps ;)

p.s. Autocast? How?


Vorderman(Posted 2009) [#83]
One problem I've found is that objects that are parented don't cast shadows correctly, they judder behind the object. For example, parent a cube to a pivot and move the pivot, and the shadow cast by the cube judders around instead of following the cube accurately.

Mikhail : is this a bug you know about?


Filax(Posted 2009) [#84]
Hi MikhailV

Glad to ear you :) !

About shadows, it is possible to do the same as Xors3D (pssm) ? To
solve the autocast problem (about autocast, i'm talking that an object can
send and receive shadows)The PSSM seem to be a lightmaped ? Or maybe i'm wrong ?

About eventual bug with fastext :

I notify that the shadows do not work with autofaded object !


See ya

informations:
http://hax.fi/asko/PSSM.html
http://appsrv.cse.cuhk.edu.hk/~fzhang/pssm_project/

Or PSSM variant : VSM
http://www.punkuser.net/vsm/

With a method like this, FastExt will be absolutly PERFECT :) !


MikhailV(Posted 2009) [#85]
Now FastExt v1.14beta is available:

- Now the FastExt library supports work with Blitz3D v1.101
- Shadow frameworks ShadowsMultiple.bb and ShadowsSimple.bb changed:
- Fixed problem with tweening, example ShadowsSimple_Tween.bb;
- Fixed problem with EntityAutoFade for casters;
- Fixed conflict with postprocess effect FE_BLURMOTION
- Now possible to attach entity as a receiver, to avoid wrong shades at intersecting casters and a receiver, example ShadowsSimple_ReceiversUse.bb;
- Now possible to use low-poly model for shadows casting (LOD) and increases FPS in the application, and it will work automatically, example ShadowsSimple_LOD.bb;
- New possibility to create a shadows from a Spot light source, example ShadowsSimple_SpotLight.bb;
- New example ShadowsMultiple_IncreaseRangeTrick.bb, showing how to increase shadow area with two shadow objects simultaneously from one light source.

- Work of function SetBuffer is optimised and more correct with RT-textures;
- Functions EntityMask and RenderMask are added, look example FastExt_Example_RenderMask.bb;

Attention! Shadow framework changed, now it is necessary to observe following rules:
1. If in a scene you use more than one camera it is necessary to hide them before call UpdateShadows function
2. If the first parametre in UpdateShadows function not the camera, it is necessary to hide this camera
before a call of function UpdateShadows.

- Do not forget to update dll, decls and include files!

You can download library from a site (http://fastlibs.com) or from your personal account. Please, test it and inform on problems if they are found out.

p.s. This version without help for new functions and only for testing and experimets.


MikhailV(Posted 2009) [#86]
@Filax: PSSM — it is more difficult system, it cannot be made without use shaders :( About autocast (self-shadowing) — excuse me, but it is unreal in DirectX7, is required analogue of PSSM.

@Vorderman: There can be a new version of library will correct this problem? Check up it please. If the problem is present, make for me a small example, I will try to solve it.


MikhailV(Posted 2009) [#87]
And small screenshot from new example
ShadowsSimple_SpotLight.bb




puki(Posted 2009) [#88]
That is my spotlight.


Yasha(Posted 2009) [#89]
80 or so posts ago, sorry, but with regard to cel-shading again...

Is there any way to change the line thickness in the wireframe render mode? I have just discovered that the first process outlined (muahahaha) here is actually relatively easy to implement in theory, but the single-pixel-wide outlines of the standard wireframe mode aren't really very attractive - they really need to be two or three pixels wide. Or is this not an available option in DX7?

EDIT: Actually come to think of it I suppose you could just offset maybe four copies of the object by an appropriate amount so that it looks like thicker lines. Not as efficient though.


semar(Posted 2009) [#90]
A question,
are the shadows dinamically generated ? For example, if I move the leafs of a tree, does the shadow change accordingly in real time ?

If this is the case, how fast it would be ?

Thanks,
Sergio.


Filax(Posted 2009) [#91]
Ok ok MikhailV it was just a suggestion :) The lib is great at this state :)

Keep up good job !

semar : Yes !


MikhailV(Posted 2009) [#92]
@Yasha: I remember, but no free time for this. At once I will tell - it is necessary to create outlines with old algorithm (CopyMesh + FlipMesh...), by means of the filter it is unreal (shaders is not present in DirectX7). And I can not change line thickness in the wireframe mode, it's impossible. But I can posterize image with filter - it's possible.

@Semar: You can try it - download trial version here. It's very fast. Demonstrations on my computers show >200 FPS (Radeon X700Pro) and >600 FPS (Redeon HD4850).


puki(Posted 2009) [#93]
"semar" - if you don't have it already, then download the fully working demo version.


Play(Posted 2009) [#94]
Hello i have a little problem:
I have for example a 3d room mesh. You know; walls, floor and the 2 chairs in the center of room. I've added a moveing around light too and everythings great but 1st chair projecting the shadow only to the wall's and floor, not to the 2nd chair and 2# chair projecting the shadow to the floor and walls, but not to the 1# chair.

I know i can use 2 lights, and more shadow textures like in the TrickForPlatformers example but it's really problematicly in the biger mesh with lot's of difrent object("child"). So i wanna that each object in one 3d mesh projecting shadow to each other object in that same mesh automaticly. Is this possieble ?

bless ;]
sorry for my bad english :p

Edit: My problem is easy to saw in the shadowsMultiple demo. Check out the palm's tree shadow- it's projecting to the big grey stone but not to the animated mesh. And the stone isn't projecting any shadow for ground. It isn't nice


GIB3D(Posted 2009) [#95]
I modified the spotlight example to show it being used as a flashlight using the mouse) if anyone's interested. I'm not sure if EntityPickMode is supposed to work on an AnimMesh because it didn't work for me.




MikhailV(Posted 2009) [#96]
@Play: Shadow system not support self-shadowing (autocasting) :( Read more about restrictions in Shadows_Help_Eng.txt file.


puki(Posted 2009) [#97]
EDIT: Disregard the below (unless you want to hunt out the example within the forums) - looks like "MikhailV" has already implemented it - ie if you set his Spotlight demo example to LightRange .1 and LightConeAngles to something tiny like 0,.1 you will see that it still works as per the previous values.

Anyway, the point is that you don't actually have to use a hardware spotlight to create a spotlight.



Anybody able to achieve the spotlight and resulting shadows without using a spotlight/hardware light?

"puki" knows.

Clue: you will call RenderWorld() twice - one of which will contain the required lighting (ie the spotlight level) on the entire scene - the second render will contain a 'portion' of that render on your dark/darker render.

Submit your answers below.

ps - the idea of the method is within these forums. Note: It is not "fredborg's", somewhat convulted, method that many people continue to refer to. Some of you will be very, very surprised at what you have missed and will look at "fredborg's" example and say to yourself 'He's having a giraffe!'.

Seek it and you will have a spotlight and shadow system like that in 'Left 4 Dead'.

Note: you will have to self-optimise it when you find it; however, it will work in its current state.


Cronos(Posted 2009) [#98]
@MikhailV: I tested all examples (FastExt v1.14beta) in Blitz3D v1.101
nice work !!!!

only detect some errors in 2 examples

FastExt_Example_FloorReflection ( reflect texture is black ??? , FloorReflection dont work )

FastExt_PostprocessBlurSpin (strange Blur effect error)

test in - Windows Vista , 2gb Ram , Nvidia Gforce Go 6150 ,Amd turion 64x2


MikhailV(Posted 2009) [#99]
Ok, I will test it


Mike0101(Posted 2009) [#100]
The spotlight demo is brilliant, excellent, great!
Is this version faster then old one? Do you have any experience about this?


Vorderman(Posted 2009) [#101]
Excellent update, thanks Mikhail!!

Left 4 Dead Blitz, here we come!!!!!!!!


Pinete(Posted 2009) [#102]
Thank you very much MikhailV!!


t3K|Mac(Posted 2009) [#103]
Wow. Nice. Love it!!!


puki(Posted 2009) [#104]
Is anyone able to 'properly' (ie better than me) make a selection of the png images whereby there are several sizes of the spotlight compared to the black background?

You cannot just scale the texture after it has loaded as this will not have any effect. The point being that the textures are no good for different scale worlds, because the white alpha section needs to shrink and the black area grow in relation to each other.

ie - the original fadeBlack.png:


As the original is way too big for me, I hand carved this one:



Mine is very rough as I had to shape it by hand as I am no good with 2D art stuff - I assume this is something that someone can make easily in PhotoShop, etc.

My one is slightly too small, as I kept making mistakes and my attempts to re-shape it ended up with a smaller and smaller spot.

So, if anyone can produce some of various sizes, then I think people will have a use for them.

In the meantime, I shall soldier on hand-carving my own.


Yasha(Posted 2009) [#105]
Present for you, puki:




puki(Posted 2009) [#106]
My god that looks terribly exciting!

Looks totally customisable too!

I'll have a play with it.

Sausages!


puki(Posted 2009) [#107]
Seems to work great!

If anyone wants to licence my new CreateSpotlightTexture thing, then send me an e-mail and I'll work out some pricing.


GIB3D(Posted 2009) [#108]
Silly puki anyone can make that... well I know I can at least...


puki(Posted 2009) [#109]
Ok, you can modify it (or make a new one) to make squares instead of circles - there is a use for square lights.

"puki" waits.


RifRaf(Posted 2009) [#110]
How about starting a new thread for your nonsense, and let this one remain focused on FastLibs & MikhailVS updates.


GIB3D(Posted 2009) [#111]
Well I don't think it's quite "nonsense" seeing as you need a "sense" of smell to understand it all.


MikhailV(Posted 2009) [#112]
FastExt v1.14 beta2 available!

- fixed my bugs in examples FastExt_Example_FloorReflection & FastExt_PostprocessBlurSpin (and other FXs)

- Added new Postprocess effect "Posterize" aka cel-shading or toon-shading (for testing) + example FastExt_PostprocessPosterize.bb. This can be not fast FX, please test it. I can't test, my videocard always shows more 600-700 FPS (HD4850).

- Added new high-quality modes (2 & 3) for postprocess effects: Blur, BlurDirectional, BlurSpin. For correct work (without artifact) on very fast videocards.

Download trial version HERE. And Retail version from your personal account.

p.s. Do not forget to update dll, decls and included files!


GIB3D(Posted 2009) [#113]
Woo cell shading!? I MUST TRY!

Edit:
It reminds me of Legend of Zelda: Wind Waker graphics.

Cell shading (Posterize example) Stats
280-300fps disabled
Level 0 - 115fps
Level 1 - 80fps
Level 2 - 47fps

Processor: Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz (2 CPUs)
Memory: 1792MB RAM
Video Card: NVIDIA GeForce 9300 / nForce 730i
Video Memory: 512MB
Operating System: Windows XP Home Edition Service Pack 3


puki(Posted 2009) [#114]
Too much excitement for me - it is like Christmas.


FlagDKT(Posted 2009) [#115]
Posterize:

fps
838
545
2796
1136

--------------------------------
Intel Quad6600 @ 2.40ghz
Geforce 8800gt 512mb
Xp sp3


josk(Posted 2009) [#116]
This gets better and better.


Cronos(Posted 2009) [#117]
Great Update , Thanks !!!!

all examples ( FastExt v1.14 beta 2 ) in Blitz3D v1.101
it works fine :-)


Mike0101(Posted 2009) [#118]
Puki is so funny. I'm readig his post always.:)


Tab(Posted 2009) [#119]
Hmm.. the new shadow system is slower than the 1.13...

Posterize:

WindowMode
Disable : ~3180
Lvl 0 : ~870
Lvl 1 : ~720
Lvl 2 : ~530

FullScreen
Disable : ~3374
Lvl 0 : ~1000
Lvl 1 : ~828
Lvl 2 : ~614

Core2Duo @ 3.80GHz
GeForce GTS250
Vista SP2


GIB3D(Posted 2009) [#120]
Jees you guys are getting huge FPS numbers compared to mine... maybe I need to change my video card :P I've heard its not meant for game usage anyways.


Mike0101(Posted 2009) [#121]
Yes, I seem the new shadow a bit slower then 1.13.


MikhailV(Posted 2009) [#122]
@Mike0101: You can use old include-files for shadows (if it really faster), but it return problems with tweening.


RifRaf(Posted 2009) [#123]
MikhailV

i switched my gui from using the main camera to a seperate camera, now that im using two cameras, DOF has stopped working.

I have tried hiding the gui camera before postprocess effects, then showing it again after. This did not work.

All the other effects seem to be ok, such as glow, and grayscale. But DOF has stopped.

Any ideas how to get dof working with a second camera active?


MikhailV(Posted 2009) [#124]
Don't clear ZBuffer! DOF fx can't work without correct ZBuffer data. Set CameraClsMode GUI_camera, 0, 0 for second camera in the 3D world used for GUI. And I recommended to use one camera only for the 3D world.


RifRaf(Posted 2009) [#125]
MikhailV,

im already setting up the GUI camera like that

Global cam=CreateCamera()
Global hudcam=CreateCamera()
CameraClsMode hudcam,False,False
CameraRange hudcam,.1,2


now if I do this

Global cam=CreateCamera()
Global hudcam=cam


Then DOF will work again , but without the second camera. Is there anything else that would cause DOF to fail with gui camera?

Im using SpriteCandy as a hud on the gui camera, but I looked and it seems SpriteCandy does not modify the zbuffer.

Edit: i put a second camera into the dof example and it messed that up as well. I did not use sprite candy there.. just made a new camera with clsmode 0,0

Only way I can get dof to work is entityorder hudcam,1 but that naturally removed the hud from view.


MikhailV(Posted 2009) [#126]
DOF fx uses current View-matrix, Projection-matrix and ZBuffer from DirectX for work. Your GUI camera - it's last camera in Render flow, and it changes matrixes and disturbs functioning the DOF effect.

Exists two solutions of the problem:

1. Main and GUI camera must be absolutely identical (Position, Rotation, Scale, Range, Zoom, camera Viewport, ProjMode), but ClsMode must be 0, 0 for GUI camera.

2. Or use RenderWorld separately for every cameras.

; render scene
HideEntity GUI_camera
ShowEntity Main_camera
RenderWorld                          
RenderPostprocess FE_DOF

; render gui
ShowEntity GUI_camera
HideEntity Main_camera
RenderWorld




RifRaf(Posted 2009) [#127]
A second render did the trick, thank you .


Chroma(Posted 2009) [#128]
 And Retail version from your personal account.

I just bought FastLibs. What personal account? Where is it!!


puki(Posted 2009) [#129]
http://www.fastlibs.com/login.php


GIB3D(Posted 2009) [#130]
I had the same question in my mind when I saw that. The login button is at the very bottom of the page and I think you have to ask for your username and password and it will email it to you.


Chroma(Posted 2009) [#131]
So FastLibs works with the latest version of b3d now? v1.11?


ZJP(Posted 2009) [#132]
FastExt v1.14 beta2 works with Blitz3D v1.101 ;)

JP


Spike314(Posted 2009) [#133]
Can you use a spotlight as a flashlight and still cast shadows from another light using the ShadowsMultiple.bb??


System4 Studios(Posted 2009) [#134]
I had the same question in my mind when I saw that. The login button is at the very bottom of the page and I think you have to ask for your username and password and it will email it to you.



Left support ticket and still no reply.. Brought FastExt about two weeks ago..


SabataRH(Posted 2009) [#135]
Hi, just a little notice for treeparty and fastextension owners - http://www.blitzbasic.com/Community/posts.php?topic=86311


Mike0101(Posted 2009) [#136]
Do you have idea for "hot air" effect? You know when the horizon is weaving in sunshine in the desert. I think Fastex is able to create but I can't.:)


GIB3D(Posted 2009) [#137]
The way Grand Theft Auto San Andreas does the heat effect (from what I saw) is they use rising alpha squares. If you have the game, just go to CJ's house and stand in the street, you'll notice a bunch of quads or squares floating up.


Mike0101(Posted 2009) [#138]
This smart small code doesn't work with depth of field. Where can I hack the cameraviewport command in fastib for the right working?

Const monratio#	= 16/10.		; Enter your monitors aspect ratio 
Const w_width	= 800
Const w_height	= 600
Const w_mode	= 1
Graphics3D w_width, w_height, 0, w_mode : WireFrame 1
cam = CreateCamera()
multiX# = 1.
multiY# = 1.
If w_mode=1
	multiX# = monratio#/(4/3.)
	multiY# = (Float(w_width)/Float(w_height)) / (4/3.)
EndIf
CameraViewport cam, 0, 0, w_width * multiX#, w_height * multiY#



MikhailV(Posted 2009) [#139]
@Mike0101: DOF FX has some restrictions and can work only for whole screen. I recommend to use ScaleEntity function for Camera to correct aspect ratio.

About "hot air" effect - see FastExt_Example_EntityRefraction.bb example. And use sprite + anim-texture for distortions (refractions).


Play(Posted 2009) [#140]
Hello is it possieble to change glow fx to get something like post glow inset effect from this website:
http://developer.download.nvidia.com/shaderlibrary/webpages/shader_library.html
bless :)

btw. great toon update ;)


MikhailV(Posted 2009) [#141]
Possible :)


Mike0101(Posted 2009) [#142]
Thank you Mikhail


chi(Posted 2009) [#143]
@Mike0101: updated my code to work with FE-DoF ;)
-> http://blitzbasic.com/Community/posts.php?topic=86331

@MikhailV: thanks for the hint on ScaleEntity!!!


Mike0101(Posted 2009) [#144]
@chi: Cool, thx


El Gigante de Yeso(Posted 2009) [#145]
Play, that "inset glow" can be achieved by just using a Sphere map. Just use a sphere map like this with additive blending:




_33(Posted 2009) [#146]
That's not a sphere map! That's just a sphere.


El Gigante de Yeso(Posted 2009) [#147]
Actually, a circle :P


GIB3D(Posted 2009) [#148]
Actually a black hole into nothingness (:D


Naughty Alien(Posted 2009) [#149]
Mikhail, do you have any plans to convert your libs for use with miniB3D? That will be VERY handy..


RifRaf(Posted 2009) [#150]
Do you have to have a spherical reflection map or cubemap to get a bumpmap to work ?


RifRaf(Posted 2009) [#151]
bump out of frustration .. how can one make somthing like this work.
basically im looking through the surfaces of a mesh, and if a bumpmap texture exists for the surface , im applying it.. but apparently im not applying it properly

Function Addbumpmap_map(ent,mapname$)
    ChangeDir thispath$
	scount=CountSurfaces(Ent)
 	For i=1 To scount
                s=GetSurface(ent,i) 
		b=GetSurfaceBrush(s)
		t=GetBrushTexture(b)
		th$=TextureName$(t)
                ;ok strip the filename from th$
                path$=get_path$(th$)
                ;just the filename$
                fn$=strip_path$(th$)
                ;fn with no extention
                fn_bare$=strip_extension$(fn$)
                ;see if a bumpmap file exists to match used color texture
                If FileType ("maps\"+mapname$+"\"+fn_bare$+"b.png")=1 Then ;exists
    		bump_brush=CreateBrush(255,255,255)
	        tex=LoadTexture("maps\"+mapname$+"\"+fn_bare$+"b.png") 
                TextureBlend tex,FE_BUMP
                TextureBlend t,2
                BrushTexture bump_brush,tex,0,0
                BrushTexture bump_brush,t,0,1
                BrushBlend   bump_brush,FE_BUMP
                PaintSurface s,bump_brush
                FreeTexture tex
                FreeBrush bump_brush
                FreeTexture t
                FreeBrush b
         EndIf                
    Next
End Function 



MikhailV(Posted 2009) [#152]
>> BrushBlend bump_brush, FE_BUMP - wrong code, delete this line.
Use FE_BUMP constant with TextureBlend function only.
See examples from library archive.


RifRaf(Posted 2009) [#153]
thanks, but ive tried it with / without and a few other blend modes as well.. Can you advise me on how to write the above function ? Ive read the examples and tried to apply them , but it hasnt worked.
edit: im having some success by adding cuebmaps to the mix, but not good enough yet.


edit2:
well my bumpmaps may be garbage, I bought a package from totaltextures set cd #15, and all the included bumpmaps are greyscale, not the blue color yours are.. I tried one of yours and it worked much better.

Can I get the grayscale bumpmaps to work somehow ??

OK EDIT #3...
I found a very useful tool for converting bump maps into normal maps (Wich is what fastext needs it seems ?)
http://ati.amd.com/developer/sdk/radeonSDK/html/Tools/ToolsPlugIns.html

all is working great now!!


RifRaf(Posted 2009) [#154]
MikhailV,

Ive been trying to produce an effect, and I just cant seem to get it right. Could you tell me if this is possible and if so, how.

I want my bump mapped surfaces to illuminate from my player , then outward. Nomatter what kind of cubemap I can come up with, and nomatter what entity I align it to (lightsource, playermode, camera) it doesnt produce the effect. Heres an image wich shows what I am getting. The small illustration in the upper left shows what I want to acheive.

Any tips or help would be appreciated



As you can see the illumination stretches from the player/camera in a line across the surface, what im trying to do is illuminate a circle with the player being in the center.


MikhailV(Posted 2009) [#155]
@RifRaf: I it is difficult to understand that you want to get.
But I can expect that cubemap is displayed wrong, because not correct use cubemaps with bump (this noticeably on NVidia videocards). I recommend see example - FastExt_Example_FloorReflection.bb - and attentively study it, he solves such a problem.


RifRaf(Posted 2009) [#156]
ok thank you , one more question.

Do you have an example of illuminating a bumpmap from more than one lightsource ??

EDIT:
i was also wondering if theres any way to hook B3Ds texturefilter() so that we can add filters for bump,bumplum, specular0,1,2,&3

if that were possible, setting up meshes for fe materials would be sooo much easier.


RifRaf(Posted 2009) [#157]
You can disregard my prev questions ive made my own discoveries there, however im getting a memory leak when I do the following between levels

	DeInitExt()
	ClearWorld(1,1,1)
        InitExt()


can you see any reason why this would happen, if I do not deinit and reinit the library then the memory leak goes away.


FlagDKT(Posted 2009) [#158]
Hi MikhailV!
I was testing latest fast_text and I noticed that it's extremely slower than blitz3d default text function in certain situations.
I was trying it with DevilGui system.

http://devil-engines.dev-ch.de/Frame_Main_DGui.html

...just can't figure out why it is so sloooow.
What's the reason??strange...


MikhailV(Posted 2009) [#159]
Hi FlagDKT!
Can be two problems:
1. You draw text with antialiasing
2. You use OS Vista (dx7 emulator)

If Unicode support is not required for you, I recommend to use FastImage library for text-drawing.


Mike0101(Posted 2009) [#160]
Hi MikhailV

Do you have any news about 1.4?


FlagDKT(Posted 2009) [#161]
@MikhailV
1. smooth=FT_DEFAULT, encoding=FT_UNICODE
2. windows xp

did you try the sample in devilgui?
just run the example provided and include Fasttext_Unicode.bb


MikhailV(Posted 2009) [#162]
@FlagDKT: Strange, on this OS never was problems. Please try example FastText_SpeedTest_BlitzText_VS_FastText.bb from library archive. And... I can't try the sample from devilgui, no free time for this, sorry.

@Mike0101: I search for a new way to accelerate rendering of group of entity. But at me good news, testing of many people has shown that the FastExt 1.14 Beta2 does not contain bugs! (only insignificant reduction of speed in shadow system).


Mike0101(Posted 2009) [#163]
Cool, thank you. I'm using beta2 too without bugs but the shadow system speed.


FlagDKT(Posted 2009) [#164]
the FastText_SpeedTest_BlitzText_VS_FastText.bb works great...
that's why I decided to boost devilgui libs speed with fasttext...


_33(Posted 2009) [#165]
MikhailV: Maybe it is out of context, but FastImage has been made compatible to Xors3D. But when will FastImage be ported to BlitzMax? I intend to use FastImage for BlitzMax and with Xors3D. Thanks and sorry if the topic is out of context.


FlagDKT(Posted 2009) [#166]
:( no way to know what's up with fasttext? :(


FlagDKT(Posted 2009) [#167]
MikhailV. I focused the FastText problem.
Download example

As you may see in the example, it is caused by viewport() + drawimage() commands.

Can you fix it, or there's too much work?

..and DrawImageEx doesn't work after renderworld() ..shit!


MikhailV(Posted 2009) [#168]
I see such infos in your example:
4-5 ms for Blitz text
3-4 ms for Fast text

I have a little changed a code to see drawing time:



Where a problem?

p.s. DrawImageEx and other functions from FastImage work between StartDraw and EndDraw functions only. And can be work before RenderWorld function and after Render world without any problems, see examples...


FlagDKT(Posted 2009) [#169]
I compiled those lines of code and I got:
5ms Blitz3d
44ms FastText

tested on:
nvidia 7900gt
nvidia 8800gt
windowsxp sp2 directx9c

could someone please test it too?

p.s. Even switching to drawimageex/setviewport I get same milliseconds...

the problem is in viewport()/setviewport() clipping commands because If I don't use them I get:
90ms Blitz3d
45ms FastText


MikhailV(Posted 2009) [#170]
Strange, I'm testing this on old low-end videocard Radeon X700 128Mb... (Windows XP SP2, Cpu 3 GHz)


FlagDKT(Posted 2009) [#171]
noone could test it? :(


GIB3D(Posted 2009) [#172]
Nvidia 9300
2-30ms Blitz3D
30-50ms FastText


FlagDKT(Posted 2009) [#173]
Thx Gia :)
then id demonstrate Fasttext has some problems with viewport() + drawimage()
Hope MikhailV knows what's happening :)


FlagDKT(Posted 2009) [#174]
Hey MikhailV, I know you are starting to hate me :)
...but...
with my config: winxpsp3 gf8800gt dx9c
Glow at 640x480 produces these artifacts...



on my other pc with gf7900gt it works correctly...

strange...why all other postprocess fx work without any problems?
and...news about fasttext bug?

thx


Colonel_Klink(Posted 2009) [#175]
Hi
I don't know if anybody has discussed this here or not, so i thought I'd ask about self shadows.

I read above that fast extend shadows doesn't support self shadows or self casting, and was wondering if using a separate shadow lod object would do the same thing?

I've created models for VBS2 (Virtual Battlefield Simulator) in the past and models implemented a separate shadow volume (lod).

As the main model for example has say 5000 triangles and the lod has 1000, could one effectively use the shadow lod to cast shadows on both the the surrounding scenery (terrain and objects) as well as the main model?


OJay(Posted 2009) [#176]
been there. done that. doesnt work.

the problem is the mesh receiving its own shadow, as the shadows are projected to infinity in both up and down direction...i modified one of mikhails pictures to demonstrate, what i mean:



Colonel_Klink(Posted 2009) [#177]
Hmm. just had a play with using a shadow lod model and the shadows were ewwww! Looks like I'll have to look at an alternative method of getting shadow to work.


MikhailV(Posted 2009) [#178]
Hi FlagDKT :)

I could not find the computer on which the FastText library works more slowly a natural Blitz3D. BUT I precisely know that speed will be more low in OS Vista (may be in Windows7). As the conclusion - I wish to recommend use FastImage library (for text drawing) if Unicode support is not required to you. The FastImage library always will faster draw, as it is based on the DirectX, instead of on OS API (GDI and GDI+).

About Glow FX - you can use other quality setting for FX to get rid of any artefacts (quality% = 2 or 3). It more slowly, but guarantees higher quality. Read more in help file about CustomPostprocessGlow function.


FlagDKT(Posted 2009) [#179]
Ok...I will try to use fastimage instead of fasttext :)

about glow fx..
I Tried all quality settings.
The problem is the 640x480 resolution.
At 800x600 no problems at all!


GIB3D(Posted 2009) [#180]
By the way, I use Windows XP.


FlagDKT(Posted 2009) [#181]
me too


Vorderman(Posted 2009) [#182]
I'm using shadow LODs in SRX for the car shadows, and they work perfectly, although right now I can't recall how I got them to work.

However, they do work very nicely indeed, and massively decrease the casting-shadow polycount (no idea if that helps the framerate or not though..)


Beaker(Posted 2009) [#183]
Continued on thread 5.