RE:

Date : Sun, 20 Aug 2006 09:22:16 +0100
To : 3DGames(at)Softimage.COM
From : Byron Atinson-Jones <byron(at)xiotex.free-online.co.uk>
Subject : RE:
Ok, I was convinced I had tried that last night but obviously I hadn't (was 2am
when I was trying it).

Anyway - here is my code now:

	for(DWORD dwX = 0; dwX < in_pGeom->m_lNbColorStreams; dwX++)
	{
		for(DWORD dwI = 0; dwI < in_pGeom->m_NbVertices; dwI++)
		{
			color = in_pGeom->m_pColorPtrArray[dwI][dwX];
			XSI_RTS_ColorRGBA a = color;

			color.m_alpha = 0;
			color.m_blue = a.m_red;
			color.m_green = a.m_green;
			color.m_red = a.m_blue;
			in_pGeom->m_pColorPtrArray[dwI][dwX] = color;
		}
	}

and that works a hell of a lot better. I know that my mesh is a POSD with 1
colour stream. I seem to be getting rogue vertex colours though:

http://www.xiotex.com/rogue.JPG

in_pGeom reports 144 vertices and they look like (before swizzle):


[3188] index = 0 a = 255 r = 192 g = 192 b = 192
[3188] index = 1 a = 255 r = 192 g = 192 b = 192
[3188] index = 2 a = 255 r = 192 g = 192 b = 192
[3188] index = 3 a = 255 r = 192 g = 192 b = 192
[3188] index = 4 a = 255 r = 192 g = 192 b = 192
[3188] index = 5 a = 255 r = 192 g = 192 b = 192
[3188] index = 6 a = 255 r = 192 g = 192 b = 192
[3188] index = 7 a = 255 r = 192 g = 192 b = 192
[3188] index = 8 a = 255 r = 192 g = 192 b = 192
[3188] index = 9 a = 255 r = 192 g = 192 b = 192
[3188] index = 10 a = 255 r = 192 g = 192 b = 192
[3188] index = 11 a = 255 r = 192 g = 192 b = 192
[3188] index = 12 a = 255 r = 192 g = 192 b = 192
[3188] index = 13 a = 255 r = 192 g = 192 b = 192
[3188] index = 14 a = 255 r = 192 g = 192 b = 192
[3188] index = 15 a = 255 r = 192 g = 192 b = 192
[3188] index = 16 a = 255 r = 192 g = 192 b = 192
[3188] index = 17 a = 255 r = 192 g = 192 b = 192
[3188] index = 18 a = 255 r = 192 g = 192 b = 192
[3188] index = 19 a = 255 r = 192 g = 192 b = 192
[3188] index = 20 a = 255 r = 0 g = 30 b = 255
[3188] index = 21 a = 255 r = 0 g = 30 b = 255
[3188] index = 22 a = 255 r = 0 g = 30 b = 255
[3188] index = 23 a = 255 r = 0 g = 30 b = 255
[3188] index = 24 a = 255 r = 0 g = 30 b = 255
[3188] index = 25 a = 255 r = 0 g = 30 b = 255
[3188] index = 26 a = 255 r = 0 g = 30 b = 255
[3188] index = 27 a = 255 r = 0 g = 30 b = 255
[3188] index = 28 a = 255 r = 0 g = 30 b = 255
[3188] index = 29 a = 255 r = 0 g = 30 b = 255
[3188] index = 30 a = 255 r = 0 g = 30 b = 255
[3188] index = 31 a = 255 r = 0 g = 30 b = 255
[3188] index = 32 a = 255 r = 0 g = 30 b = 255
[3188] index = 33 a = 255 r = 0 g = 30 b = 255
[3188] index = 34 a = 255 r = 0 g = 30 b = 255
[3188] index = 35 a = 255 r = 0 g = 30 b = 255
[3188] index = 36 a = 255 r = 0 g = 30 b = 255
[3188] index = 37 a = 255 r = 0 g = 30 b = 255
[3188] index = 38 a = 255 r = 0 g = 30 b = 255
[3188] index = 39 a = 255 r = 192 g = 192 b = 192
[3188] index = 40 a = 255 r = 192 g = 192 b = 192
[3188] index = 41 a = 255 r = 192 g = 192 b = 192
[3188] index = 42 a = 255 r = 192 g = 192 b = 192
[3188] index = 43 a = 255 r = 192 g = 192 b = 192
[3188] index = 44 a = 255 r = 192 g = 192 b = 192
[3188] index = 45 a = 255 r = 192 g = 192 b = 192
[3188] index = 46 a = 255 r = 192 g = 192 b = 192
[3188] index = 47 a = 255 r = 192 g = 192 b = 192
[3188] index = 48 a = 255 r = 192 g = 192 b = 192
[3188] index = 49 a = 255 r = 192 g = 192 b = 192
[3188] index = 50 a = 255 r = 192 g = 192 b = 192
[3188] index = 51 a = 255 r = 192 g = 192 b = 192
[3188] index = 52 a = 255 r = 192 g = 192 b = 192
[3188] index = 53 a = 255 r = 192 g = 192 b = 192
[3188] index = 54 a = 255 r = 192 g = 192 b = 192
[3188] index = 55 a = 255 r = 192 g = 192 b = 192
[3188] index = 56 a = 255 r = 192 g = 192 b = 192
[3188] index = 57 a = 255 r = 192 g = 192 b = 192
[3188] index = 58 a = 255 r = 255 g = 0 b = 0
[3188] index = 59 a = 255 r = 255 g = 0 b = 0
[3188] index = 60 a = 255 r = 255 g = 0 b = 0
[3188] index = 61 a = 255 r = 255 g = 0 b = 0
[3188] index = 62 a = 255 r = 255 g = 0 b = 0
[3188] index = 63 a = 255 r = 255 g = 0 b = 0
[3188] index = 64 a = 255 r = 255 g = 0 b = 0
[3188] index = 65 a = 255 r = 255 g = 0 b = 0
[3188] index = 66 a = 255 r = 255 g = 0 b = 0
[3188] index = 67 a = 255 r = 255 g = 0 b = 0
[3188] index = 68 a = 255 r = 255 g = 0 b = 0
[3188] index = 69 a = 255 r = 255 g = 0 b = 0
[3188] index = 70 a = 255 r = 255 g = 0 b = 0
[3188] index = 71 a = 255 r = 255 g = 0 b = 0
[3188] index = 72 a = 255 r = 255 g = 0 b = 0
[3188] index = 73 a = 255 r = 255 g = 0 b = 0
[3188] index = 74 a = 255 r = 255 g = 0 b = 0
[3188] index = 75 a = 255 r = 255 g = 0 b = 0
[3188] index = 76 a = 255 r = 255 g = 0 b = 0
[3188] index = 77 a = 255 r = 192 g = 192 b = 192
[3188] index = 78 a = 255 r = 192 g = 192 b = 192
[3188] index = 79 a = 255 r = 192 g = 192 b = 192
[3188] index = 80 a = 255 r = 192 g = 192 b = 192
[3188] index = 81 a = 255 r = 192 g = 192 b = 192
[3188] index = 82 a = 255 r = 192 g = 192 b = 192
[3188] index = 83 a = 255 r = 192 g = 192 b = 192
[3188] index = 84 a = 255 r = 192 g = 192 b = 192
[3188] index = 85 a = 255 r = 192 g = 192 b = 192
[3188] index = 86 a = 255 r = 192 g = 192 b = 192
[3188] index = 87 a = 255 r = 192 g = 192 b = 192
[3188] index = 88 a = 255 r = 192 g = 192 b = 192
[3188] index = 89 a = 255 r = 192 g = 192 b = 192
[3188] index = 90 a = 255 r = 192 g = 192 b = 192
[3188] index = 91 a = 255 r = 192 g = 192 b = 192
[3188] index = 92 a = 255 r = 192 g = 192 b = 192
[3188] index = 93 a = 255 r = 192 g = 192 b = 192
[3188] index = 94 a = 255 r = 192 g = 192 b = 192
[3188] index = 95 a = 255 r = 192 g = 192 b = 192
[3188] index = 96 a = 255 r = 60 g = 255 b = 0
[3188] index = 97 a = 255 r = 60 g = 255 b = 0
[3188] index = 98 a = 255 r = 60 g = 255 b = 0
[3188] index = 99 a = 255 r = 60 g = 255 b = 0
[3188] index = 100 a = 255 r = 60 g = 255 b = 0
[3188] index = 101 a = 255 r = 60 g = 255 b = 0
[3188] index = 102 a = 255 r = 60 g = 255 b = 0
[3188] index = 103 a = 255 r = 60 g = 255 b = 0
[3188] index = 104 a = 255 r = 60 g = 255 b = 0
[3188] index = 105 a = 255 r = 60 g = 255 b = 0
[3188] index = 106 a = 255 r = 60 g = 255 b = 0
[3188] index = 107 a = 255 r = 60 g = 255 b = 0
[3188] index = 108 a = 255 r = 60 g = 255 b = 0
[3188] index = 109 a = 255 r = 60 g = 255 b = 0
[3188] index = 110 a = 255 r = 60 g = 255 b = 0
[3188] index = 111 a = 255 r = 60 g = 255 b = 0
[3188] index = 112 a = 255 r = 60 g = 255 b = 0
[3188] index = 113 a = 255 r = 60 g = 255 b = 0
[3188] index = 114 a = 255 r = 60 g = 255 b = 0
[3188] index = 115 a = 255 r = 192 g = 192 b = 192
[3188] index = 116 a = 255 r = 192 g = 192 b = 192
[3188] index = 117 a = 255 r = 192 g = 192 b = 192
[3188] index = 118 a = 255 r = 192 g = 192 b = 192
[3188] index = 119 a = 255 r = 192 g = 192 b = 192
[3188] index = 120 a = 255 r = 192 g = 192 b = 192
[3188] index = 121 a = 255 r = 192 g = 192 b = 192
[3188] index = 122 a = 255 r = 192 g = 192 b = 192
[3188] index = 123 a = 255 r = 192 g = 192 b = 192
[3188] index = 124 a = 255 r = 192 g = 192 b = 192
[3188] index = 125 a = 255 r = 192 g = 192 b = 192
[3188] index = 126 a = 255 r = 192 g = 192 b = 192
[3188] index = 127 a = 255 r = 192 g = 192 b = 192
[3188] index = 128 a = 255 r = 192 g = 192 b = 192
[3188] index = 129 a = 255 r = 192 g = 192 b = 192
[3188] index = 130 a = 255 r = 192 g = 192 b = 192
[3188] index = 131 a = 255 r = 192 g = 192 b = 192
[3188] index = 132 a = 255 r = 192 g = 192 b = 192
[3188] index = 133 a = 255 r = 192 g = 192 b = 192
[3188] index = 134 a = 255 r = 192 g = 192 b = 192
[3188] index = 135 a = 255 r = 192 g = 192 b = 192
[3188] index = 136 a = 255 r = 192 g = 192 b = 192
[3188] index = 137 a = 255 r = 192 g = 192 b = 192
[3188] index = 138 a = 255 r = 192 g = 192 b = 192
[3188] index = 139 a = 255 r = 192 g = 192 b = 192
[3188] index = 140 a = 255 r = 192 g = 192 b = 192
[3188] index = 141 a = 255 r = 192 g = 192 b = 192
[3188] index = 142 a = 255 r = 192 g = 192 b = 192
[3188] index = 143 a = 255 r = 192 g = 192 b = 192
[3188] index = 144 a = 0 r = 0 g = 0 b = 0

and other associated data:

[3188] m_lNbColorStreams = 1
[3188] m_lNbNormalStreams = 1
[3188] m_lNbTexCoordStreams = 0
[3188] m_lNbTriangleLists = 8
[3188] m_NbUniqueVertices = 0
[3188] m_NbVertices = 144
[3188] m_pColorArray = 0
[3188] m_pColorPtrArray = 8DEE140
[3188] m_pIndices = 0

>The way you're iterating the color array is not correct.
>
>For RTS_TL_BYREF or RTS_TL_BYREF_POSD you use:
>XSI_RTS_ColorRGBA *color =
>in_pGeom->m_pColorPtrArray[index][color_stream_index];
>
>And for RTS_TL_SINGLE_INDEX_ARRAY:
>XSI_RTS_ColorRGBA *color =
>&in_pGeom->m_pColorArray[m_pIndices[index]][color_stream_index]
>
>So you have to handle both code paths...
>
>Wessam Bahnassi
>Microsoft DirectX MVP,
>Programmer
>Electronic Arts
>--
>In|Structurez Arabic Gamedev Community
>www.instructurez.com
>
>> -----Original Message-----
>> From: owner-3dgames(at)Softimage.COM [owner-3dgames(at)Softimage.COM] On
>> Behalf Of Byron Atinson-Jones
>> Sent: Saturday, August 19, 2006 5:51 PM
>> To: 3DGames(at)Softimage.COM
>> Subject:
>> 
>> My first pass code looks like:
>> 
>> 	XSI_RTS_ColorRGBA *color = in_pGeom->m_pColorPtrArray[0];
>> 
>> 	for(DWORD dwI = 0; dwI m_NbVertices; dwI++)
>> 	{
>> 		XSI_RTS_ColorRGBA a = *color;
>> 
>> 		color->m_alpha = 0;
>> 		color->m_blue = a.m_red;
>> 		color->m_green = a.m_green;
>> 		color->m_red = a.m_blue;
>> 		++color;
>> 	}
>> 
>> When applied to something simple like a cube it appears to work fine. When
>> I
>> moved onto more complex meshes like a sphere it begins to go a bit wrong:
>> 
>> This is the view in shaded:
>> 
>> www.xiotex.com/shaded.JPG
>> 
>> and the same view in dx:
>> 
>> www.xiotex.com/dx.JPG
>> 
>> Any clues you can give me about what I am doing wrong...
>> 
>> 
>> 
>> >In XSI_RTS_TriangulatedGeometry's definition:
>> >XSI_RTS_ColorRGBA *m_pColorArray;
>> >
>> >So you have to swizzle that before you use it your shader. Since you're
>> >modifying the DXDraw node's code, then you can do the swizzle there or
>> >probably better at the graphics sequencer level.
>> >
>> >Also, the code for DXDraw and the DX graphics sequencer shows what states
>> >are overwritten by these nodes. Note that they use a state block to
>> preserve
>> >original device state after EndScene().
>> ---
>> Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
>> unsubscribe 3dgames
>
>---
>Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
>unsubscribe 3dgames

---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe 3dgames


Search the 3D Games List archives here or use the advanced search form to search across mailing lists. Searching help is available.
This site supposedly brought to you by Benjamin Grosser and the Imaging Technology Group.