break;

                                               

                                       case Groups. C_MATSHININESS:

                                               m. Shininess = ProcessPercentageChunk ( child );

                                               break;

                                               

                                       case Groups. C_MATMAP:

                                               ProcessPercentageChunk ( child );

                                               ProcessTexMapChunk ( child, m );

НЕ нашли? Не то? Что вы ищете?

                                               break;

                                               

                                       default:

                                               SkipChunk ( child );

                                               break;

                               }

                               tesRead += tesRead;

                       }

                       materials. Add ( name, m );

               }

               void ProcessTexMapChunk ( ThreeDSChunk chunk, Material m )

               {

                       while ( tesRead < chunk. Length )

                       {

                               ThreeDSChunk child = new ThreeDSChunk ( reader );

                               switch ((Groups) child. ID)

                               {

                                       case Groups. C_MATMAPFILE:

                                               string name = ProcessString ( child );

                                               Bitmap bmp;

                                               try

                                               {

                                                       bmp = new Bitmap ( base_dir + name );

                                               }

                                               catch ( Exception ex )

                                               {

                                                       Console. WriteLine ( "        ERROR: could not load file '{0}': {1}", base_dir + name, ex. Message );

                                                       break;

                                               }

                                               bmp. RotateFlip(RotateFlipType. RotateNoneFlipY);

                                               

                                               System. Drawing. Imaging. BitmapData imgData = bmp. LockBits ( new Rectangle(new Point(0, 0), bmp. Size),

                                                               System. Drawing. Imaging. ImageLockMode. ReadOnly,

                                                               System. Drawing. Imaging. PixelFormat. Format32bppArgb);

                                               m. BindTexture ( imgData. Width, imgData. Height, imgData. Scan0 );

                                               bmp. UnlockBits(imgData);

                                               bmp. Dispose();

                                               break;

                                       default:

                                               SkipChunk ( child );

                                               break;

                               }

                               tesRead += tesRead;

                       }

               }

               float[] ProcessColorChunk ( ThreeDSChunk chunk )

               {

                       ThreeDSChunk child = new ThreeDSChunk ( reader );

                       float[] c = new float[] { (float) reader. ReadByte() / 256 , (float) reader. ReadByte() / 256 , (float) reader. ReadByte() / 256 };

                       tesRead += (int) child. Length;        

                       return c;

               }

               int ProcessPercentageChunk ( ThreeDSChunk chunk )

               {

                       ThreeDSChunk child = new ThreeDSChunk ( reader );

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21