VividGl-3D

Blitz3D Forums/Blitz3D Programming/VividGl-3D

gotelin(Posted 2004) [#1]
Good morning
Where is a demo and information the VividGl-3d?
Can I use blitz code with VividGl-3D'

Thanks.


angel martinez(Posted 2004) [#2]
I think it isnīt available yet.


AntonyWells(Posted 2004) [#3]
Hey, Demos and release coming soon. the worklog has info on the demos if you're interested.

You can use blitzocde with VividG.

I.e

Cube=loadMesh("test.x") ;Blitz3D function
cube=fitmesh cube,-1,-1,-1,1,1,1
cube=convert_BlitzEntity(cube)

and you get a valid vivid entity retaining the blitz3d entities normals/colors/textures etc.

So you can easily import any existing blitz3D mesh related code and simply convert it's output once done, without having to rewrite it all.


Dreamora(Posted 2004) [#4]
hmm

according the worklog you seem to spend a lot time on FX ... I hope you are not making the same mistake as TGC with DBP ... sacrificing everything just for stupid shader support :)
*just a thought after reading several times that you spent your time on graphical gimmics*


AntonyWells(Posted 2004) [#5]
Just to clarify, all shader related fx are optional and provided through fx skins.

these are wrote themselfs in blitz so you're not limited to what I do, but anything you can do in hardware.

for example, the depth of field skin is

Function skin_BlurTexture()
;BlurTexture
;
;This fxskin blurs textures per pixel.
;Use skin_blurFactor(skin,blurFactor#)
;to increase/decrease blur. 0=no blur. 0.1=alot of blur.
;uses pixel shaders.
	outSkin=glFxSkin()
	PixS=loadPixelshader(outSkin,shaderFolder+"Texture_Blur1.cg")
	skin_InitShader(pixS)
	blurPar=glInitShaderPar(pixS,"blur",spFloat4,spWhenOn)
	fx.fxSkin=Object.fxSkin(outskin)
	fx\pp[0]=blurPar
	fx\pShad=Object.shader(pixS)
	Return outSkin
End Function


This returns a fx skin. Which, like a brush can you paint to whole entities or specific surfaces.

PLUS, you have fxSkin_On(mySkin) which forces a skin on for all following operations, including all *2d* ops.

On hardware that doesn't support it, you're limited to what your gpu supports..be it dot3/cube-maps, vertex-lighting etc.


MadJack(Posted 2004) [#6]
Otacon

I guess you've got a good market opportunity ahead of you if you can provide a quality 3d system that can be used with Blitz3d and Bmax, before Mark has written an updated engine for Bmax. Down the line, Mark will be your competition.

My first interest in Vivid is whether I'll be able to just plug it into my existing Blitz3d code and with little alteration, get speedier rendering that's stable across different platforms, and with very little alteration in programme behaviour (I think you have already said that that's what Vivid can do?)

Also, how does Vivid handle collisions? I've spent a fair amount of time struggling with Blitz's collsions and so would be reluctant to fiddle with my working code now, but if something better was available...


AntonyWells(Posted 2004) [#7]
Down the line, Mark won't be my main comp, as Vivid will be multi-language by then(I.e C++ etc) so I'm in luck ;)

As for plugging it in, generally all non rendering blitz3d funcs can be used, file access, banks etc. And all the structures are defined in b3d, you no b3d like limits. (You are given an integer, but for each resource there's a func to give you the type)

i.e
myShipMesh=Entity_Load("Ship1.3ds",camParent)
MyShip.Ent=Entity_GetObject(myShipMesh)
Surfaces=myShip\SurfaceCount

Same for textures etc.

But quite a lot of vivid has no b3d counter-part..
but for an example of a typical piece of vivid code using new stuff, here's the source to a demo, this little bit of code uses 2 fxskins, (including vertex/pixel shaders) and produces per-pixel depth of field with shimmer in the distance.

It also demonstrates the ability to render high speed 2d, that is not only multi-textured, but is mapped with a per-pixel pixel shader.(No vertex shader in this case, but fxskins can contain both vert/pixel, as shown in the zColor skin)

do
	Cls_Rgb()
	Viewport_Resize(0,0,fxRes,fxRes)
	FxSkin_On(zColorSkin)
	Entity_Render(room)
	Batch_Render(carsBatch)
;	Entity_Render(skybox)
	fxSkin_Off()
	Texture_Grab depthTexture,0,0
	Cls_Z()
	Entity_Render(room)
	Batch_Render(carsBatch)
	Entity_Render(skyBox)
	Texture_Grab colorTexture,0,0
	Viewport_Resize(0,0,GraphicsWidth(),GraphicsHeight())
	Cls_Z()	
	
	lock2d()
		fxSkin_On(blurSkin) ;fxSkin will now be used on all 2d ops. Per Pixel gpu-fx on 2d in other words.
			activate_texture(depthTexture,0)
			activate_texture(ColorTexture,1)
				Render_Quad(0,0,GraphicsWidth(),GraphicsHeight())
		fxSkin_Off()
	unlock2d()
	
	deactivate_textures()
	Vivid_Flip()
loop


Also, vivid hijacks the blitz3d window, so you can at any point switch to blitz specific 3d/2d display, without screen changes or having to reload anything.


Picklesworth(Posted 2004) [#8]
Hm... When this is released, and if I like it, it would be fantastic if someone made a blitz -> vivid converter.


MadJack(Posted 2004) [#9]
Good stuff

But what about collisions? Is that still handled by Blitz (Vivid just handles the rendering)?


AntonyWells(Posted 2004) [#10]
Vivid uses the C++ coldet. Firstly for linepicks, you can check against any entity(Using poly/sphere/cube).(I.e no need to do the blitz style hide/show entity madness)

Also the octree pipeline has a optimized linepick that only checks leafs the linepick vector intersect, so if a pick only passes a few hundred polys, it'll only check those, not every poly in the scene.

Plus, wrappers are provided for blitz's sliding collisions, in case anyone actually uses those. ;)

Plus II - I'm going to integrate a physics libs sooner rather than later.


MadJack(Posted 2004) [#11]
'Plus, wrappers are provided for blitz's sliding collisions, in case anyone actually uses those. ;) '

Well, in my tank game I have 4 pivot points per tankbase that are set to full sliding collision on the terrain mesh and sliding/no sliding down slopes on wall meshes, and this works well.


Dreamora(Posted 2004) [#12]
hmm for some reason there is Nuclear Glory Collision DLL isn't it? ( including a C++ source version :) )


AntonyWells(Posted 2004) [#13]
Yep. Coldet is fine though. :)

Doesn't do sliding collisions I suppose, but then again it's freeware. I'd have to pay for each license of vivid I sold with n.glory.(?)


Dreamora(Posted 2004) [#14]
if you compile the Nglory C++ sources, then I don't think so but you might ask them about this ( http://www.nuclearglory.com )

here is the license if interested:

License:

You are free to use the included software in your projects. You are free to share the software with your team members if they are working on a project with you. Should they begin to work on their own projects using the collision system, they need to order their own package from our website.

Website: http://www.nuclearglory.com

You are free to release this software as part of a running game or multimedia application.

You ARE NOT allowed to redistribute your access key(s).

You ARE NOT allowed to redistribute the included software (recompiled or otherwise) with (or as part of) a programming language or other "computer program creation tool". If you wish to redistribute the included software as part of "computer program creation tool" you must receive documented permission from us first. A "computer program creation tool" is herein defined as any program (or hardware) that assists in the creation of computer software.

If you intend to release source code for your own library that accesses/relies on our collision system, you need to contact us first.

Thanks!



Contact: admin@...
Web: http://www.nuclearglory.com

Nuclear Glory Collision (NGC) System
Đ Copyright 2002-2004, Nuclear Glory Enterprises



I think an engine doesn't fit in the definition of "computer program creation tool"


Gabriel(Posted 2004) [#15]
A "computer program creation tool" is herein defined as any program (or hardware) that assists in the creation of computer software.


Does a 3d engine not assist in the creation of computer software? I would have thought it did or there would be no point in having it.


Dreamora(Posted 2004) [#16]
Yepp but it isn't a tool. It is an engine, part of a creation environment.

As mentioned, best is just ask them :)


Michael Reitzenstein(Posted 2004) [#17]
Regardless of the wording, I think it most definitely goes against the spirit of the contract. Do you want to royally piss off the Nuclear Glory team?


Dreamora(Posted 2004) [#18]
which part of asking does not cost didn't you understand?
Or are you a split personality of sybixsus which repeats his postings?


Michael Reitzenstein(Posted 2004) [#19]
Why would a split personality post in agreeance?


Dreamora(Posted 2004) [#20]
Sorry forget about it. Just realized that you are not trying to understand postings before answering.


Michael Reitzenstein(Posted 2004) [#21]
Words escape me.


AntonyWells(Posted 2004) [#22]
War. It's never pretty.

Vivid will continue to use ColDet presently, regardless of (c)Issues, too close to release(Just have to finish docs.) to perform open engine surgery now.


big10p(Posted 2004) [#23]
lol. You edited your post you coward. C'mon, 'fess up and say what you originally posted. :)


wizzlefish(Posted 2004) [#24]
What is VividGL?


big10p(Posted 2004) [#25]
Digital Fortress, you spelled 'where' wrong.

*mischievous chuckle*

:P


wizzlefish(Posted 2004) [#26]
ha...ha...ha....

No, really....I have no clue what VividGL is...


AntonyWells(Posted 2004) [#27]
lol. You edited your post you coward. C'mon, 'fess up and say what you originally posted. :)


I said 'Finally! :)", I changed it because the thought had crossed my mind that someone would use it to steer the ship into a sea of flames. You know, like you almost did? :)


AntonyWells(Posted 2004) [#28]
I have no clue what VividGL is


3D engine. With knobs on.


wizzlefish(Posted 2004) [#29]
Neat!


Michael Reitzenstein(Posted 2004) [#30]
I said 'Finally! :)

No offense taken, either.


big10p(Posted 2004) [#31]
I said 'Finally! :)", I changed it because the thought had crossed my mind that someone would use it to steer the ship into a sea of flames. You know, like you almost did? :)


Ooops, I was only kidding around. :)