||Posted - Jun 01 2004 : 10:05:09 AM
OK, I am currently designing a game based in outer space. I found it neccesary to create a particle system to represent the stars... However, when I render the stars, they are alway a light blue color, as opposed to white. I discovered this was because the previous object I rendered had a blue material. My question is, how do you "unset" a material, because I cannot for the life of me figure it out.
PS - I have also tried creating a white material, but I get errors when I do that...
||Posted - Jun 01 2004 : 8:28:46 PM
OK, just saw your second comment VBBR... yup, I think that did it... thanks
||Posted - Jun 01 2004 : 8:21:32 PM
I am getting the error too... It is getting really annoying... "Unterminated String Constant, do you wish to debug?" or something. I hate VS .NET, every time I hit an error on a page, it has to ask if I want to debug it...
Back to the topic: When VB gives me the error, it actually highlights the "ambient" (or whatever) parameter. I just don't think you are allowed to directly set the value.
I implemented a *VERY* low tech solution... I made another material (completely white) when I made the object (in Milkshape3D), then, through trial and error, found its index and set that immediatly before rendering the stars. It seems to work, though nobody else could understand the code...
||Posted - Jun 01 2004 : 8:14:04 PM
Oh found it. You need to pass a "D3DCOLORVALUE" type. So define a variable of this type and define the a,r,g,b components separately.
||Posted - Jun 01 2004 : 8:11:16 PM
Hum... what error?
||Posted - Jun 01 2004 : 7:30:19 PM
One more thing, did anybody else get that error when entering vbgamer, I have noticed that it stopped when I wrote this last comment, I am wondering if the code snippets are causing that, because all the forum posts have those little tooltips... maybe it was just me...
||Posted - Jun 01 2004 : 7:27:44 PM
Have you tried D3DColorARGB(Alpha, Red, Green, Blue)... this is what I use to set up colors in DirectX8, it has worked in every situation I've run in to... but there are exceptions..
||Posted - Jun 01 2004 : 11:30:02 AM
Oh yeah... I have also tried
but that did not work either, I got a "ByRef Type Mismath" or something to that effect...
||Posted - Jun 01 2004 : 11:25:39 AM
Well I know it was wrong... I can't figure out how to set the ambient/diffuse/emissive/power/specular properties. I tries RGB, Hex codes, even the native vb Colors (vbWhite...). I got an error saying "type mismatch" at the line where I tried to set them... I don't think you can just do
BlankMaterial.ambient = &HFFFFFF
or whatever... Is there a special function in the D3DX library
||Posted - Jun 01 2004 : 11:14:19 AM
What's the code for creating the white material?
||Posted - Jun 01 2004 : 10:59:36 AM
D3DDevice.SetRenderState D3DRS_ALPHABLENDENABLE, 1
D3DDevice.SetRenderState D3DRS_ZWRITEENABLE, 0
D3DDevice.SetTexture 0, StarTexture
D3DDevice.SetTransform D3DTS_WORLD, matStars
D3DDevice.DrawPrimitiveUP D3DPT_POINTLIST, NumOfStars, _
D3DDevice.SetRenderState D3DRS_ZWRITEENABLE, 1
D3DDevice.SetRenderState D3DRS_LIGHTING, True
D3DDevice.SetTransform D3DTS_WORLD, matShip
For I = 0 To nMaterials - 1
D3DDevice.SetTexture 0, MeshTextures(I)
D3DDevice.SetTransform D3DTS_WORLD, matWorld
Hope that helps...
||Posted - Jun 01 2004 : 10:29:17 AM
Can you not post the code of when you're rendering the objects?