Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DirectX SDC, мелкий эррор но хз как его 
V
    Опции темы
allahtaskbar
Дата 9.4.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.4.2008

Репутация: нет
Всего: нет



собстно какойто экзампл простой

Код

using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace Chapter1Code
{
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        private Device device = null;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;
        private float angle = 0.0f;

        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.Size = new Size(800, 600);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true);
        }

        /// <summary>
        /// We will initialize our graphics device here
        /// </summary>
        public void InitializeGraphics()
        {
            // Set our presentation parameters
            PresentParameters presentParams = new PresentParameters();

            presentParams.Windowed = true;
            presentParams.SwapEffect = SwapEffect.Discard;

            // Create our device
            device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
        }

        private void SetupCamera()
        {
            device.RenderState.CullMode = Cull.None;
            device.Transform.World = Matrix.RotationAxis(new Vector3(angle / ((float)Math.PI * 2.0f), angle / ((float)Math.PI * 4.0f), angle / ((float)Math.PI * 6.0f)),  angle / (float)Math.PI);
            angle += 0.1f;

            device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, this.Width / this.Height, 1.0f, 100.0f);
            device.Transform.View = Matrix.LookAtLH(new Vector3(0,0, 5.0f), new Vector3(), new Vector3(0,1,0));
            device.RenderState.Lighting = true;
        }

        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            device.Clear(ClearFlags.Target, System.Drawing.Color.CornflowerBlue, 1.0f, 0);

            SetupCamera();

            CustomVertex.PositionNormalColored[] verts = new CustomVertex.PositionNormalColored[3];
            //2005/07/10, TheZbuffer.com, Updated for June SDK
            //verts[0].SetPosition(new Vector3(0.0f, 1.0f, 1.0f));
            //verts[0].SetNormal(new Vector3(0.0f, 0.0f, -1.0f));

            verts[0].Position=new Vector3(0.0f, 1.0f, 1.0f);
            verts[0].Normal=new Vector3(0.0f, 0.0f, -1.0f);
            verts[0].Color = System.Drawing.Color.White.ToArgb();
            //2005/07/10, TheZbuffer.com, Updated for June SDK
            //verts[1].SetPosition(new Vector3(-1.0f, -1.0f, 1.0f));
            //verts[1].SetNormal(new Vector3(0.0f, 0.0f, -1.0f));
            verts[1].Position=new Vector3(-1.0f, -1.0f, 1.0f);
            verts[1].Normal=new Vector3(0.0f, 0.0f, -1.0f);
            verts[1].Color = System.Drawing.Color.White.ToArgb();
            //2005/07/10, TheZbuffer.com, Updated for June SDK
            //verts[2].SetPosition(new Vector3(1.0f, -1.0f, 1.0f));
            //verts[2].SetNormal(new Vector3(0.0f, 0.0f, -1.0f));
            verts[2].Position=new Vector3(1.0f, -1.0f, 1.0f);
            verts[2].Normal=new Vector3(0.0f, 0.0f, -1.0f);
            verts[2].Color = System.Drawing.Color.White.ToArgb();

            device.Lights[0].Type = LightType.Point;
            device.Lights[0].Position = new Vector3();
            device.Lights[0].Diffuse = System.Drawing.Color.White;
            device.Lights[0].Attenuation0 = 0.2f;
            device.Lights[0].Range = 10000.0f;

            //2005/07/10, TheZbuffer.com, Updated for June SDK
            //device.Lights[0].Commit();
            device.Lights[0].Enabled = true;

            device.BeginScene();
            device.VertexFormat = CustomVertex.PositionNormalColored.Format;
            device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, verts);
            device.EndScene();

            device.Present();

            this.Invalidate();
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null) 
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.Size = new System.Drawing.Size(300,300);
            this.Text = "Form1";
        }
        #endregion

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main() 
        {
            using (Form1 frm = new Form1())
            {
                // Show our form and initialize our graphics engine
                frm.Show();
                frm.InitializeGraphics();
                Application.Run(frm);
            }
        }
    }
}


Вызалит оно:

"Error    1    The type 'Microsoft.DirectX.Direct3D.Device' exists in both 'd:\WINDOWS\assembly\GAC\Microsoft.DirectX.Direct3D\1.0.900.0__31bf3856ad364e35\Microsoft.DirectX.Direct3D.dll' and 'd:\WINDOWS\assembly\GAC_32\Microsoft.DirectX\2.0.900.0__31bf3856ad364e35\Microsoft.DirectX.dll'    E:\omg\material\kniggi\programming\MDXKickstartCSAug05\c# Aug 05\Chapter 1\Lights\Form1.cs    15    17    Lights"
PM MAIL   Вверх
vponomarov
Дата 9.4.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



allahtaskbar, нужно явни указать namespace объекта, который ты юзаешь: либо Microsoft.DirectX.Direct3D либо Microsoft.DirectX.
вроде так smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
mr.DUDA
Дата 10.4.2008, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Похоже что в проекте лишний референс - либо Microsoft.DirectX.Direct3D.dll (версии 1.0 кстати), либо Microsoft.DirectX.dll (версии 2.0). Или референс на Microsoft.DirectX.dll надо было добавлять на версию 1.0


--------------------
user posted image
PM MAIL WWW   Вверх
allahtaskbar
Дата 10.4.2008, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.4.2008

Репутация: нет
Всего: нет



точняк - это несовместимость в версиях была. поставил и там и там v1 и запахало.

большой спасиб smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0742 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.