Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> برنامه نويسي تخصصي DirectX و اصول برنامه نويسي تحت ويندوز -> >> سوال و جواب <<
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي
برو به صفحه قبلي  1, 2, 3, ... 15, 16, 17  بعدي

نويسنده
پيغام
شهروز
مدیر انجمن
مدیر انجمن


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


2 شنبه 1 آبان 1385 - 13:53
پاسخ بصورت نقل قول
Kochol جان
من از تكسچر فقط ست كردن اون با device رو بلدم.

مثلا تصوير زير رو نگاه كن :

http://xs208.xs.to/xs208/06431/3DTV.gif

تكسچر موجود در كادر سمت چپ با مدل مكعب ست شده ولي كوردينيت نشده.

البته اين اون موتوري نيست كه گفته بودم ...
اگر لطف كني و نحوه كوردينيت كردن اونها رو برام بنويسي ممنون ميشم.

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


2 شنبه 1 آبان 1385 - 20:26
پاسخ بصورت نقل قول
سلام
من يه نمونه مثال برات مي زنم ببين مشكلت از كجاست. البته كدها به زبان vb.net هست.

Dim Tex As Texture

بعد با دستور زير لودش مي كنيم.

("Tex = TextureLoader.FromFile(d3dDevice,"test.bmp

بعد هم قبل از رندر اون رو ست مي كنيم.
كد:

d3dDevice.SetTexture(0, Tex(Index))


حالا احتمالا مشكلت اينجاست.
تو تعريف ورتكس ها.
كد:

        Dim Verts(3) As CustomVertex.PositionTextured
        Verts(0).Position = New Vector3(0, iH, 0)
        Verts(1).Position = New Vector3(iW, iH, 0)
        Verts(2).Position = New Vector3(0, 0, 0)
        Verts(3).Position = New Vector3(iW, 0, 0)
        Verts(0).Tu = 0
        Verts(0).Tv = 0
        Verts(1).Tu = 1
        Verts(1).Tv = 0
        Verts(2).Tu = 0
        Verts(2).Tv = 1
        Verts(3).Tu = 1
        Verts(3).Tv = 1
        VB.SetData(Verts, 0, LockFlags.None)


شايد كه يادت مي ره قبل از رندر بگي كه چه نوع نقاطي رو مي خواهي رندر بگيري.
d3dDevice.VertexFormat = CustomVertex.PositionTextured.Format

اميدوارم با اين توضيحات مشكلاتت حل بشه.

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
شهروز
مدیر انجمن
مدیر انجمن


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


2 شنبه 1 آبان 1385 - 20:39
پاسخ بصورت نقل قول
بله مشكلم در ورتكس هاست.

اگر ممكنه لطف كن و يك توضيح درباره iH و iW بده و اينكه VectexBuffer رو كجا تعريف كنم و بايد چيزي رو بهش نسبت بدم ؟

ممنون.

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


2 شنبه 1 آبان 1385 - 21:40
پاسخ بصورت نقل قول
سلام
اين يه تابعي بود كه يه مستطيل مي ساخت كه iw عرض ان و iH هم طول ان هست همين.

VB رو هم مي توني به صورت گلوبال تعريف كني.
VB As VertexBuffer = Nothing

بعدش هم قبل از استفاده با دستور new فضايي از رم رو بهش اختصاص بده.
كد:

        VB = New VertexBuffer(GetType(CustomVertex.PositionTextured), 4, d3dDevice, Usage.WriteOnly, CustomVertex.PositionTextured.Format, Pool.Default)

قبل از رندر هم مشخص كن كدوم Vertex Buffer رو آماده رندر كنه.
كد:

d3dDevice.SetStreamSource(0, VB, 0)

نمي دونم چرا سورست رو نمي زاري تا شايد سريع تر مشكلت رفع بشه مي توني فقط اون قسمت هايي كه مربوط به اين كار هست رو بزاري اگه نمي خواهي كه كدهات لو بره.

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
شهروز
مدیر انجمن
مدیر انجمن


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


2 شنبه 1 آبان 1385 - 21:46
پاسخ بصورت نقل قول
ممنون.

نه كد خاصي نيست .
اين تمام كديه كه با تكسچر سر و كار داره به همراه تغييراتي كه گفتيد ولي باز هم عين اولش است !!!
البته به زبان C#.net هست.

كد:
Texture tex1=null;
      private void set_texture(string p)
      {
         tex1=TextureLoader.FromFile(device,p);

         device.SetTexture(0,tex1);
         device.VertexFormat=CustomVertex.PositionTextured.Format;

         CustomVertex.PositionTextured[] vect=new CustomVertex.PositionTextured[4];
         
         VertexBuffer vb=new VertexBuffer(typeof(CustomVertex.PositionTextured),4,device,Usage.WriteOnly,VertexFormats.Diffuse,Pool.Default);

           
         Vector3 vec1=new Vector3(0f,50f,0f);
         Vector3 vec2=new Vector3(50f,50f,0f);
         Vector3 vec3=new Vector3(0f,0f,0f);
         Vector3 vec4=new Vector3(50f,0f,0f);
         vect[0].Position=vec1;
         vect[1].Position=vec2;
         vect[2].Position=vec3;
         vect[3].Position=vec4;

         vect[0].Tu=0;
         vect[0].Tv=0;
         vect[1].Tu=1;
         vect[1].Tv=0;
         vect[2].Tu=0;
         vect[2].Tv=1;
         vect[3].Tu=1;
         vect[3].Tv=1;

         vb.SetData(vect,0,LockFlags.None);
         device.SetStreamSource(0,vb,0);
      }

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


2 شنبه 1 آبان 1385 - 23:30
پاسخ بصورت نقل قول
سلام
پس دستور رندرت كجاست.
d3dDevice.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 2)

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
شهروز
مدیر انجمن
مدیر انجمن


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


2 شنبه 1 آبان 1385 - 23:46
پاسخ بصورت نقل قول
توي تابع رندر. البته نه با primitive .

مگه اون هم لازمه ؟

اگه لازمه :

كد:
private void render()
      {
         device.Clear(ClearFlags.Stencil | ClearFlags.Target | ClearFlags.ZBuffer,pictureBox3.BackColor,1.0f,0);
         device.BeginScene();
         obj1.DrawSubset(0);
         device.EndScene();
         device.Present();
      }

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

نويسنده
پيغام
شهروز
مدیر انجمن
مدیر انجمن


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


3 شنبه 2 آبان 1385 - 01:59
پاسخ بصورت نقل قول
Kochol جان
فكر كنم يك جاي كار اشتباه شده ...

من براي ساخت مش از Box استفاده كرده ام نه از Primitive و ورتكس .

در اينصورت فكر كنم نيازي به تعريف ورتكس بافر نباشد و فقط نسبت دادن ورتكس بافر مش باكس به متغير كافي باشد ؟

يعني چيزي شبه به اين :

كد:
Texture tex1=null;
      VertexBuffer vb=null;
      private void set_texture(string p)
      {
         
         tex1=TextureLoader.FromFile(device,p);
         device.SetTexture(0,tex1);

         device.VertexFormat=CustomVertex.PositionTextured.Format;
         
         CustomVertex.PositionTextured[] vect=new CustomVertex.PositionTextured[4];
         vb=obj1.VertexBuffer;

         for (int i = 0; i < vect.Length; i += 4)
         {

            vect[i + 0].Tu = 0.0f;
            vect[i + 0].Tv = 0.0f;

            vect[i + 1].Tu = 1.0f;
            vect[i + 1].Tv = 0.0f;

            vect[i + 2].Tu = 1.0f;
            vect[i + 2].Tv = 1.0f;

            vect[i + 3].Tu = 0.0f;
            vect[i + 3].Tv = 1.0f;
         }

         
         vb.SetData(vect,0,LockFlags.None);
         device.SetStreamSource(0,vb,0);
      }

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

نويسنده
پيغام
مهدي 2190
مدیر انجمن
مدیر انجمن


تاريخ عضويت: جمعه 26 فروردين 1384
تعداد ارسالها: 402
محل سكونت: تهران


3 شنبه 2 آبان 1385 - 12:38
پاسخ بصورت نقل قول
سلام دوستان
خوشحالم که کمی این تاپیک داره با کمک شما عزیزان فعال تر از قبل میشه .
این همه پست رو شما جدیدا زدید ؟
من هیچ کدوم رو ندیده بودم .
شاید هم سایت منو از پست ها با خبر نمی کنه !
به نظر میاد MDX هم داره یواش یواش محبوب میشه .
موفق باشید .

_________________
به امید روزی که کلمه ای کاش را نگوئیم ....
وبلاگ تیم توسعه سورنا
www.gamedev.ir
ادیتور سورنا
http://sourena.gamedev.ir/
ادیتور سیمرغ
http://simorgh.SourenaGames.com
بازی دوازده رخ - 12 رخ (سیاوش)
www.SourenaGames.com
شرکت نرم افزاری سورنا پردازش
WWW.SOURENACO.IR
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


3 شنبه 2 آبان 1385 - 13:07
پاسخ بصورت نقل قول
سلام
نه شما اصلا نمي تونيد اين كار رو بكنيد.
از كجا معلوم كه نوع ورتكس ها ي اون باكس از نوعي باشد كه تكستچر هم قبول بكند.
يه راهي بود كه مي شد نوع ورتكسشو عوض كرد ولي من يادم نيست كار اسوني هم نبود بهتره به جاي اين كار شما خودت يه تابع بنويسي كه برات مكعب بسازه.

اول چك كنيد ببينيد كه فرمت ورتكس هاي باكس چي هست.

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 2 از 17 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد
برو به صفحه قبلي  1, 2, 3, ... 15, 16, 17  بعدي


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |