درود مهمان گرامی! ثبت نام


امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
DirectX یا OpenGL
#1
دوستان می دونید این چند وقت خیلی توی این دو روش برنامه نویسی گرافیک بحث شده
من می خوام برنامه نویسی گرافیکی رو شروع کنم
اما نمی دونم با کدوم یک شروع کنم
هر کی یه چیزی میگه
من کاری با سختیش ندارم
فقط می خوام بدونم کدومش بهتره
اگه یه پاسخ صحیح به من بدین ممنون میشم
فقط دوستان خواهشن تاپیک رو به دعوا نکشین
هفت شهر عشق را عطار گشت / ما هنوز اندر خم یک کوچه ایم
پاسخ
 سپاس شده توسط moien1
#2
کسی نمیخواد منرو راهنمایی کنه
هفت شهر عشق را عطار گشت / ما هنوز اندر خم یک کوچه ایم
پاسخ
#3
توی گوگل یه سرچ کردم اینا اومدن بخون شاید بدردت خورد
http://opengl.blogfa.com/post-15.aspx

http://barnamenevis.org/showthread.php?2...A7-directX

http://www.mywindows.ir/%DA%86%D8%B1%D8%...%AF%D8%9F/

پاسخ
 سپاس شده توسط محمدمهدی علیجانی
#4
ببین داداش شما c++ رو در چه حدی بلدی ؟ باید فول فول باشی یعنی کمه کم 3 سال به صورت حرفه ای کار کرده باشی وگرنه باید بیخیال شی ببین شما انجین رو نساخته میخای بری سر بحث گرافیکش ؟ از من به شما نصیحت اول سی ++ رو خوب یاد بگیر بعد برو کتاب های مربوط به انجین رو یاد بگیر و بعد شروع کن گرافیک
شما win32 api رو بلدی ؟ برای انجین سازی حتما باید بلد باشی بعدش باید بری سراغ کتابخونه هایی مثل boost بعدش که هسته ی انجین رو نوشتی باید به فکر گرافیک باشی بعدش حالا فیزیک و بعدش ارتقا دادن
.
کلا برای بازی direct3d خوبه هم از لحاظ گرافیک هم از لحاظ امکانات شما اگر opengl یاد بگیری برای کار کردن روی تصاویر باید از کتابخونه های دیگه ای مثل devil استفاده کنین اصلا چیزی برای ماتریس ها نداره اونم باید از یه چیز دیگه استفاده کنین البته اگر وجود داشته باشه و برای صدا هم باید از openal استفاده کنین یعنی در کل باید از 10 - 12 تا کتابخونه استفاده کنین چون اپن جی ال فقط برای ترسیمه ولی directx توش همه چی هست direct3d و direct2d و directxvid و تمامی چیزایی که به بازی و... مربوط میشه
.
راستی این ساده ترین کدیه که با سی ++ win api نوشته شده یعنی وقت برای ساخت صفحه هست شما باید تک تک این کد رو بدونی چی میگه
.
کد:
// include the basic windows header file
#include <windows.h>
#include <windowsx.h>

// the WindowProc function prototype
LRESULT CALLBACK WindowProc(HWND hWnd,
                         UINT message,
                         WPARAM wParam,
                         LPARAM lParam);

// the entry point for any Windows program
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
    // the handle for the window, filled by a function
    HWND hWnd;
    // this struct holds information for the window class
    WNDCLASSEX wc;

    // clear out the window class for use
    ZeroMemory(&wc, sizeof(WNDCLASSEX));

    // fill in the struct with the needed information
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
    wc.lpszClassName = L"WindowClass1";

    // register the window class
    RegisterClassEx(&wc);

    // create the window and use the result as the handle
    hWnd = CreateWindowEx(NULL,
                          L"WindowClass1",    // name of the window class
                          L"Our First Windowed Program",   // title of the window
                          WS_OVERLAPPEDWINDOW,    // window style
                          300,    // x-position of the window
                          300,    // y-position of the window
                          500,    // width of the window
                          400,    // height of the window
                          NULL,    // we have no parent window, NULL
                          NULL,    // we aren't using menus, NULL
                          hInstance,    // application handle
                          NULL);    // used with multiple windows, NULL

    // display the window on the screen
    ShowWindow(hWnd, nCmdShow);

    // enter the main loop:

    // this struct holds Windows event messages
    MSG msg;

    // wait for the next message in the queue, store the result in 'msg'
    while(GetMessage(&msg, NULL, 0, 0))
    {
        // translate keystroke messages into the right format
        TranslateMessage(&msg);

        // send the message to the WindowProc function
        DispatchMessage(&msg);
    }

    // return this part of the WM_QUIT message to Windows
    return msg.wParam;
}

// this is the main message handler for the program
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    // sort through and find what code to run for the message given
    switch(message)
    {
        // this message is read when the window is closed
        case WM_DESTROY:
            {
                // close the application entirely
                PostQuitMessage(0);
                return 0;
            } break;
    }

    // Handle any messages the switch statement didn't
    return DefWindowProc (hWnd, message, wParam, lParam);
}
پاسخ
 سپاس شده توسط moien1 ، محمدمهدی علیجانی
#5
کی گفت می خوام انجین بسازم
من از اول عاشق این بودم که با برنامه نویسی کارهای گرافیکی کنم
از graphic.h اسفاده کردم قدرتش زیاد نبود تصمیم گرفتم یکی از این دو تا رو یاد بگیرم
در ضمن جوینده یابنده است و هیچ چی غیرممکن نیست
اینم بدون من با علم اینکه خیلی چیزا رو در مورد برنامه نویسی نمی دونم می خوام برنامه نویسی گرافیک رو یاد بگیریم چون هیچ وقت یاد گرفتن تمومی نداره و هر چقدر بلد باشی بازم هیچ چی بلد نیستی و من تا وقتی که عمرم قد بکشه می خوام در مورد برنامه نوسی یاد بگیرم
هفت شهر عشق را عطار گشت / ما هنوز اندر خم یک کوچه ایم
پاسخ
 سپاس شده توسط m.babayi574
#6
DX کامل تر هست ولی کدهای بیشتری باید بنویسی و سخت تر هست.
DX مستقیم تر هست(یعنی دسترسی direct یا مستقیم به سخت افزار و کارت گرافیک و .. داری و اونو کنترل می کنی و دیگه نیاز نیست تو دستور بدی به سیستم عامل و سیستم عالم ویندوز یا ... دستورتو ببره به مد kernel یا هسته و اجرا کنه. بلکه خودت مستقیم دستور میدی به سخت افزار و زمان ترجمه ی بین تو و سیستم عامل و واسطه ای در کار نیست مگه اینکه بعضی واسط ها فقط.)
با DX صدا رو هم می تونی در کنترل بگیری و ... . ولی GL فقط واسه ایجاد گرافیک هست.
--
GL دستور میده به کتابخونه هاش و اونا دوباره دستور تو رو باید ترجمه کنن و بدن به os (سیستم عامل یا operating system) ، و ...
--
یه تست ساده بگیر بین برنامه ای که با open GL نوشته شده و عینش با DX . معمولا سرعت DX بالاتره و این منطقی هست طبق توضیحاتی که گفتم DX مستقیم تر هست.
--
اما نکته ی اصلی :
ابتدا درگیر این جزئیات نشو و سعی کن با انجین ها کار کنی. بعدش که بالا رفتی یواش یواش سعی کن مباحث سخت رو درک و تحلیل کنی.
در غیر اینصورت ممکنه گیج بشی و از هدف اصلی عقب بمونی.
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط محمدمهدی علیجانی


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ذخیره عکس در OpenGL Hamed-razor 3 722 19/10/1394، 01:44 عصر
آخرین ارسال: sajjad3011
Question سوال در مورد OpenGL Hamed-razor 2 932 4/10/1394، 11:08 عصر
آخرین ارسال: sajjad3011



کاربرانِ درحال بازدید از این موضوع: 1 مهمان