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





صفحه اول انجمنها -> برنامه نويسي تخصصي DirectX و اصول برنامه نويسي تحت ويندوز -> اشكال در ایجاد یک سطح دارای Texture
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي

اشكال در ایجاد یک سطح دارای Texture
نويسنده
پيغام
cna
در حال رشد
در حال رشد


تاريخ عضويت: 1 شنبه 9 مرداد 1384
تعداد ارسالها: 28
محل سكونت: تهران


شنبه 13 تير 1388 - 02:16
پاسخ بصورت نقل قول
دوستان من می خوام یک تصویر رو روی یک سطحی که مستطیلی است و از دو مثلث تشکیل شده بصورت texture قرار بدم. زباني كه استفاده مي كنم #C است.

این کار رو انجام دادم ولی هیچ تصویری غیر از پس زمینه در اجرا نمی بینم. در زیر source برنامه من هست اگر ایرادش
رو رفع کنید ممنون می شم!
Question


كد:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace DirectX_Tutorial
{
    public class WinForm : System.Windows.Forms.Form
    {
        private Device device;
        private System.ComponentModel.Container components = null;
        VertexBuffer vb;
        Texture tex;
       

        public WinForm()
        {
            InitializeComponent();
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true);
           
        }

        public void InitializeDevice()
        {
            PresentParameters presentParams = new PresentParameters();
            presentParams.Windowed = true;
            presentParams.SwapEffect = SwapEffect.Discard;
            presentParams.EnableAutoDepthStencil = true;
            presentParams.AutoDepthStencilFormat = DepthFormat.D16;

       
       
            device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
            device.RenderState.ZBufferEnable = true;
            device.RenderState.Lighting = false;

            tex = TextureLoader.FromFile(device, "winter.jpg");
        }

        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            CustomVertex.TransformedTextured[] vertices = new CustomVertex.TransformedTextured[6];
            vertices[0].Position = new Vector4(10, 10, 0f, 0f);
            vertices[1].Position = new Vector4(330f, 10f, 0f, 0f);
            vertices[2].Position = new Vector4(10, 250, 0f, 0f);
            vertices[3].Position = new Vector4(10f, 250f, 0f, 0f);
            vertices[4].Position = new Vector4(330, 10f, 0f, 0f);
            vertices[5].Position = new Vector4(330, 250f, 0f, 0f);

            vb = new VertexBuffer(typeof(CustomVertex.TransformedTextured),6, device, Usage.Dynamic | Usage.WriteOnly, CustomVertex.TransformedTextured.Format, Pool.Default);
            vb.SetData(vertices, 0, 0);
           
            device.Clear(ClearFlags.Target, Color.DarkSlateBlue, 1.0f, 0);
           
           
            device.BeginScene();

            device.SetTexture(0, tex);
            device.SetStreamSource(0, vb, 0);
            device.RenderState.AlphaBlendEnable = true;
            device.RenderState.ZBufferEnable = true;
            device.VertexFormat = CustomVertex.TransformedTextured.Format;
           
            device.DrawUserPrimitives(PrimitiveType.TriangleList, 2, vertices);
            device.EndScene();
            device.Present();

           
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }

            base.Dispose(disposing);
        }

        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.Size = new System.Drawing.Size(500, 500);
            this.Text = "DirectX Tutorial";
        }

        static void Main()
        {
            using (WinForm our_directx_form = new WinForm())
            {
                our_directx_form.InitializeDevice();
                Application.Run(our_directx_form);
            }
        }
    }
}
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
cna
در حال رشد
در حال رشد


تاريخ عضويت: 1 شنبه 9 مرداد 1384
تعداد ارسالها: 28
محل سكونت: تهران


3 شنبه 16 تير 1388 - 13:41
پاسخ بصورت نقل قول
مشكل حل شد من برای vertices که تعریف کردم Tu و Tv تعریف نکرده بودم برای همین
تصویر روی اونها درست رسم نمی شد!

Wink Embarassed
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
mralizadeh
در حال رشد
در حال رشد


تاريخ عضويت: 1 شنبه 16 اسفند 1383
تعداد ارسالها: 65
محل سكونت: تهران


4 شنبه 17 تير 1388 - 11:24
پاسخ بصورت نقل قول
سلام

يه پيشنهاد. اون قسمت new کردن بافر رئوس رو از توی تابع OnPaint بردار و توی تابعی مثل init بذار. من سی شارپ کار نکردم ولی توی سی پلاس پلاس اگر اين کار رو بکنی فک سيستم مياد پايين، چون دائما داری فضا میگيری.

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

نويسنده
پيغام
cna
در حال رشد
در حال رشد


تاريخ عضويت: 1 شنبه 9 مرداد 1384
تعداد ارسالها: 28
محل سكونت: تهران


1 شنبه 26 مهر 1388 - 08:47
پاسخ بصورت نقل قول
آره راست مي گي بر توجهي كردم.
ممنون!

Wink
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
dieting
کاربر جدید
کاربر جدید


تاريخ عضويت: 5 شنبه 11 دي 1393
تعداد ارسالها: 1


5 شنبه 11 دي 1393 - 16:04
پاسخ بصورت نقل قول
مشكل حل شد من برای vertices که تعریف کردم Tu و Tv تعریف نکرده بودم برای همین

_________________
Unlike scam ccna answers dumps and ccnax
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

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


 
پرش به:  


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


unity3d

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