View Full Version : سوال: Opengl در visual C++6
sarakh
دوشنبه 29 آذر 1389, 23:22 عصر
سلام دوستان
برای کار با opengl برای پروژه درس گرافیک VC++6 رو انتخاب کردم.برای ایجاد موتور گرافیکی مشکل پیدا کردم.
یه برنامه از سایت http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01
برای vc++6 دانلود کردم و وقتی با vc++6 برنامه رو باز می کنم.اجرا می شه.حتی اگر بخوام جایی از برنامه رو تغییر بدم می شه و برای کامپایل هیچ پیغامی نمی ده.ولی اگر خودم بخوام یه موتور گرافیکی در vc++6 با استفاده از کد دانلود شده موجود در سایت ایجاد کنم,برنامه رو کامپایل نمی کنه و پیغام خطا می ده.
fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
حتی از قسمت project/setting سه تا فایل opengl32.lib glu32.lib glaux.lib رو لینک می کنم ولی باز هم پیغام می ده.
لطفا راهنماییم کنین.
سریعا به جواب نیاز دارم.
sarakh
دوشنبه 29 آذر 1389, 23:45 عصر
البته ممکنه از همون اول پروژه رو در vc++6 اشتباه ایجاد کرده باشم.
پروژه رو بر اساس توضیحاتی که توی سایت http://nehe.gamedev.net/data/lessons....asp?lesson=01 (http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01) بود ایجاد کردم.
مسیری که پیش رفتم:
file/new/win32 application
بعد از این قسمت می پرسه پروژه خالی ایجاد کنه؟یا دو تا گزینه دیگه که نمی دونم کذوم رو باید انتخاب کنم.
آدمی جایزالخطاست ممکنه جایی رو اشتباه پیش رفته باشم.
لطفا مراحل ایجاد پروژه جدید برای کار با opengl رو در vc++6 به طور کامل توضیح بدین.
ممنون.
ehp_kz6597
سه شنبه 30 آذر 1389, 04:10 صبح
سلام
اگه روی vc++6 تاکیدی نیست لینک زیر میتونه کمکت کنه
فیلم آموزش استفاده از opengl در Microsoft Visual Studio 2005 (http://ehp.20upload.net/files/1389/aban2/12904317371.rar)
موفق باشید
(http://ehp.20upload.net/files/1389/aban2/12904317371.rar)
1485159
سه شنبه 30 آذر 1389, 13:45 عصر
ولی اگر خودم بخوام یه موتور گرافیکی در vc++6 با استفاده از کد دانلود شده موجود در سایت ایجاد کنم,برنامه رو کامپایل نمی کنه و پیغام خطا می ده.جان؟ موتور گرافیکی؟:لبخند:
بعد از این قسمت می پرسه پروژه خالی ایجاد کنه؟باید پروژه خالی ایجاد کنی. بعدن یک فایل .cpp ایجاد کن و کدت رو اونجا بنویسی و کامپایل کن. اولش شاید خیلی گیج بشی و کلا سر در گم ولی بعدا بهش عادت میکنی.
درضمن باید کتابخونه های opengl رو هم لینک کنی..
kochol
چهارشنبه 01 دی 1389, 18:00 عصر
باید اول هر یک از فایل های ++c بنویسی
#include "stdafx.h"
1485159
چهارشنبه 01 دی 1389, 20:29 عصر
باید اول هر یک از فایل های ++c بنویسی
برادر من چرا شایعه پراکنی میکنی؟:لبخند:
من خودم که این کارو نمیکنم!!(البته نمیکردم، چون الان کلا برنامه نویسی نمیکنم)!
sarakh
پنج شنبه 02 دی 1389, 22:40 عصر
منظور از موتور گرافیکی اینه که کدهای لازم رو برای ساخت پنجره گرافیکی در هر زبانی که دوست داریم ایجاد کنیم و بعد از این کافیه هر شی که می خواهیم رسم می کنیم رو در یک تابع مخصوص که در موتور گرافیکی نوشته شده ایجاد کنیم.
sarakh
پنج شنبه 02 دی 1389, 22:43 عصر
جان؟ موتور گرافیکی؟:لبخند:
باید پروژه خالی ایجاد کنی. بعدن یک فایل .cpp ایجاد کن و کدت رو اونجا بنویسی و کامپایل کن. اولش شاید خیلی گیج بشی و کلا سر در گم ولی بعدا بهش عادت میکنی.
درضمن باید کتابخونه های opengl رو هم لینک کنی..
تا حالا با vc++6 کار نکردم و نمی دونم از چه طریقی فایل c++ رو ایجاد کنم.
لطفا راهنماییم کنین.ممنون
sarakh
پنج شنبه 02 دی 1389, 23:44 عصر
سلام
اگه روی vc++6 تاکیدی نیست لینک زیر میتونه کمکت کنه
فیلم آموزش استفاده از opengl در Microsoft Visual Studio 2005 (http://ehp.20upload.net/files/1389/aban2/12904317371.rar)
موفق باشید
(http://ehp.20upload.net/files/1389/aban2/12904317371.rar)
این فایل رو دانلود کردم ولی با fash player7 که اجرا نشد.
با چی اجرا می شه؟؟؟؟؟؟؟؟
ورژن خاصی از flash player رو نیاز داره؟؟؟
ehp_kz6597
جمعه 03 دی 1389, 06:26 صبح
سلام
نه . فکر نکنم :متفکر:
اصلا Internet Explorer خیلی راحت وبدون مشکل فایل های فلاش رو پخش میکنه
اگه باز هم موفق نشدی این جزوه مختصر و خیـــــــــــــــــــلی مفید رو بخون . انشاء الله حل میشه
OpenGLInCPP.pdf (http://progranet.persiangig.com/other/Programing/OpenGLInCPP.pdf)
موفق باشید
kochol
یک شنبه 05 دی 1389, 10:55 صبح
برادر من چرا شایعه پراکنی میکنی؟:لبخند:
من خودم که این کارو نمیکنم!!(البته نمیکردم، چون الان کلا برنامه نویسی نمیکنم)!
برو ببین precompiled header فایل چی هست چیزی نمی دونی اف تاپیک هم نده
1485159
یک شنبه 05 دی 1389, 13:54 عصر
چیزی نمی دونی اف تاپیک هم نده
شما استادی...:خجالت:
من که هیچوقت نمینویسمش!
kochol
یک شنبه 05 دی 1389, 16:11 عصر
شما استادی...:خجالت:
من که هیچوقت نمینویسمش!
من ازت معذرت می خوام
sarakh
شنبه 11 دی 1389, 23:15 عصر
دوستان سلام لطفا جواب بدین.
تا حالا با vc++6 کار نکردم و نمی دونم بعد از اینکه پروژه خالی ایجاد کردم از چه طریقی باید فایل c++ رو ایجاد کنم.
لطفا راهنماییم کنین.ممنون .
kochol
یک شنبه 12 دی 1389, 07:46 صبح
می شه بگی چرا گیر دادی به وی سی 6؟
وی سی 6 خیلی قدیمیه
برو یه ویژوال استادیو دات نت 2005 یا 2010 بخر با اون کار کن. 2008 رو نخر چون باگ داره و کلی باید سرویس پک و غیره بریزی تا یه ذره بهتر بشه.
pswin.pooya
یک شنبه 12 دی 1389, 13:28 عصر
برو یه ویژوال استادیو دات نت 2005 یا 2010 بخر با اون کار کن. 2008 رو نخر چون باگ داره و کلی باید سرویس پک و غیره بریزی تا یه ذره بهتر بشه.
بیخیال ۲۰۱۰ هم شو. به شکل عجیبی کند هستش؟!!!(یا سیستم من تعطیله) اگر به خاطر کامپایلر و MSVC نبود من حتی بهش نگاه هم نمی کردم.
kochol
سه شنبه 14 دی 1389, 22:40 عصر
بیخیال ۲۰۱۰ هم شو. به شکل عجیبی کند هستش؟!!!(یا سیستم من تعطیله) اگر به خاطر کامپایلر و MSVC نبود من حتی بهش نگاه هم نمی کردم.
اره کنده البته نه رو سیستم خفن من :D
فکر کنم دلیله اصلی کند بودنش اینه که همش داره تو کدت دنبال خطا می گرده عین سی شارپ و وی بی ولی فکر کنم بتونی این امکاناتشو خاموش کنی اونوقت سرعتش می ره بالا
pswin.pooya
چهارشنبه 15 دی 1389, 15:21 عصر
اره کنده البته نه رو سیستم خفن من :D
فکر کنم دلیله اصلی کند بودنش اینه که همش داره تو کدت دنبال خطا می گرده عین سی شارپ و وی بی ولی فکر کنم بتونی این امکاناتشو خاموش کنی اونوقت سرعتش می ره بالا
من خاموشش کردم و یه مقدار بهتر شد اما بازم حال نمیده. به نظر من ادیتور ۲۰۰۸ به مراتب بهتره (با ویژوال گوجه). کلا اگر به خاطر کامپایلر و MFC نبود بیخیالش می شدم.
sarakh
پنج شنبه 16 دی 1389, 22:49 عصر
بابا بالاخره که چی؟؟؟اگه کسی خواست با vc++6 کار کنه چی؟؟؟؟
من فعلا فقط برای پروژه پایانترم می خوام.اگه لطف کنین و جواب سوالمو بدین ممنون می شم.
تا حالا با vc++6 کار نکردم و نمی دونم بعد از اینکه پروژه خالی ایجاد کردم از چه طریقی باید فایل c++ رو ایجاد کنم.
sarakh
جمعه 17 دی 1389, 00:14 صبح
حالا که از vc++ 2005 تعریف کردین.اگر ممکنه آموزش opengl رو برای vc++2005 در اختیارمون بزارین.
دلیل اینکه به vc++6 گیر دادم این هست که برای vc++6 اطلاعات زیادی دارم و می تونم پروژه رو با این مطالبی که در اختیار دارم ایجاد کنم.منتظر جواب سوالاتم در مورد vc++6 هستم.:ناراحت::افسرده::گریه:
pswin.pooya
جمعه 17 دی 1389, 12:45 عصر
از لحاظ OpenGL ویژوال C++ شیش با 2005 و حتی GCC هیچ فرقی نمیکنه. فقط لازمه یک برنامه کنسول win32 ایجاد کنی و percompiled header رو داخل گزینه ها خاموش کنی و empty project رو انتخاب کنی. وبعد از ایجاد پروژه گزینه File->New->File یه فایل C++ درست کنی. و هدرهای زیر رو وارد کنی:
#include <GL/gl.h>
#include <GL/glut.h>
#pragmma comment (lib,"opengl32.lib")
#pragma comment(lib,"glut32.lib")
بعدش هم کدت رو تایپ کن. در مورد کپی کردن هدرها هم فقط کافیه یه سرچ توی سایت بزنی.
sarakh
دوشنبه 11 بهمن 1389, 17:01 عصر
سلام.از این فایل های dll,.lib,.h. زیاد دانلود کردم.
اما نمی دونم چه فایل هایی رو برای کار با open gl در vb.net 2005 باید استفاده کنم؟؟؟؟؟؟؟؟
این فایل ها رو باید کجا ذخیره کنم تا به برنامه لینک بشه؟؟؟؟؟؟؟؟؟؟؟
sarakh
دوشنبه 11 بهمن 1389, 17:06 عصر
در کتابی خوندم که گفته بود این سه تا فایل باید در قسمت linker اضافه بشه.
Opengl32.lib glu32.lib glaux.lib
ولی نمی دونم به جز این فایل ها فایل دیگه ای نیاز هست یا نه؟؟؟؟؟؟؟؟؟
و این 3 فایل رو کجا باید ذخیره کنم که موقع کامپایل برنامه error نده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
لطفا راهنمایی کنید.
kochol
دوشنبه 11 بهمن 1389, 20:51 عصر
سلام
از این فایل ها باید در سی ++ استفاده کنید و برای vb.net نیستند
این مقاله فکر کنم به دردتون بخوره
http://www.devmaster.net/articles/intro-to-c++-with-game-dev/part16.php
sarakh
دوشنبه 11 بهمن 1389, 21:41 عصر
[QUOTE=kochol;1204825]سلام
از این فایل ها باید در سی ++ استفاده کنید و برای vb.net نیستند
ممنون
من هم اون فایل هارو برای vc++2005 گفتم.
حالا درسته؟؟؟؟؟؟؟؟؟؟
sarakh
دوشنبه 11 بهمن 1389, 22:25 عصر
you must also remember to include the directory in the Projects and Solutions menu.
این رو توی مقاله ای که گفتین خوندم اما دقیقا نمی دونم چه جوری اون فایل رو توی پروژه یا قسمت solution اضافه کنم؟؟؟؟؟؟؟؟
من این کار رو انجام دادم :
روی اسم پروژه در پنجره solution راست کلیک می کنیم و گزینه references رو انتخاب می کنیم.بعد در قسمت references گزینه add path رو انتخاب می کنیم و مسیری که فایل های lib در اون ذخیره شده
رو مشخص می کنیم.
درسته؟؟؟؟؟؟؟؟؟؟؟؟؟؟
اگر درست نیست لطفا تصحیح کنید در غیر این صورت درست بودنشو اطلاع بدین.
ممنون.
kochol
دوشنبه 11 بهمن 1389, 22:54 عصر
سلام
نه درست نیست.
این اموزش رو ببین توش توضیح دادم که چه طوری باید مسیر ها رو برای سرچ vs.net تعریف کنی
http://kge3d.org/document/tutorials/t01-compiler-setup-2/
این قسمتی هست که شما نیاز دارید.
If your IDE is Visual Studio .NET , Select <Tools> menu and select <Options…>.Select the projects entry and then select <VC++ directories>. Select ‘show directories for include files’ in the combo box , and add “Include” Directories of KGE engine.
Compiler also need to find the library files of engine,so stay in that dialog , select ‘show directories for Library files’ and add the libs directory of engine and also add the “Debug” directory.
sarakh
سه شنبه 12 بهمن 1389, 00:09 صبح
ممنون از راهنماییتون.
اما هر کار کردم هیچ فایده ای نداشت.این کد رو توی برنامه دوشتم که اول تست کنم آیا همه چی درسته یا نه؟مثلا همین پیدا کردن فایل های include.
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <gl/glut.h>
#include <math.h>
int main ( int args , char *argv [ ] )
{
return 0 ;
}
مسیر پوشه include رو برای libarary و includeو reference در قسمت show directories for Library files مشخص کردم.
فایل های .dll رو در پوشه windows32 و فایل های .h و .lib رو در C:\Program Files\Microsoft Visual Studio 8\VC\include ذخیره کردم.
در قسمت linker هم Opengl32.lib glu32.lib glut32.lib glaux.lib freeglut.lib رو نوشتم.
با این حال این پیغام خطا رو دریافت می کنم:
fatal error c1083:can not open include file ‘gl/glut.h’:no such file or directory
لطفا راهنماییم کنین.
pswin.pooya
سه شنبه 12 بهمن 1389, 00:22 صبح
سلام
1. فایلهای .lib رو باید بریزی تو پوشه lib
2. فایلهای .h رو هم توی پوشه C:\Program Files\Microsoft Visual Studio 8\VC\include\gl\ باید بریزی
sarakh
سه شنبه 12 بهمن 1389, 00:43 صبح
مشکل فعلا حل شد فکر می کنم مسیر directories رو اشتباه وارد کرده بودم.
مسیر درست اینه:
glut32.dll -> C:\Windows\System or C:\WinNT\System
glut32.lib -> C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib
glut32.h -> C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\gl
مشکلم رو از طریق این سایت برطرف کردم.
مراحل ایجاد پروژه opengl رو با vc++2005 رو به خوبی و به طور کامل توضیح داده.
http://www.cecs.csulb.edu/~pnguyen/Using%20OpenGL%20in%20Visual%20Studio%202005.htm
البته برای تعیین کردن محل پوشه های lib و include باید از این لینک که در بالا هم قرار داده شده استفاده کنیم.
http://kge3d.org/document/tutorials/t01-compiler-setup-2/
sarakh
سه شنبه 12 بهمن 1389, 12:50 عصر
سلام.
دوستان گفته بودن از نظرopengl ر vc++6 و vc++2005 با هم فرقی نداره.
برای همین من یه کد از سایت nehe دانلود کردم که برای vc++6 نوشته شده بود و کد رو در پروژه vc++2005کپی کردم.موقع اجرای برنامه حدود 23 تا پیغام خطا داره.رفع این خطاها وقت زیادی می خواد و فرصت من زیاد نیست.
یه موتور گرافیکی(همون کدهایی که شامل تابع killwindow وdrawglscen و غیره هست) برای visual c++ 2005 نیاز دارم.
:لبخندساده:
sarakh
سه شنبه 12 بهمن 1389, 22:51 عصر
دوستان لطفا موتور گرافیکی برای vc++2005
خیلی فرصت ندارم.
sarakh
چهارشنبه 13 بهمن 1389, 11:39 صبح
سلام به راهنمایی دوستان تصمیم گرفتم با visual c++.net 2005 برنامه رو بنویسم.
کد رو از سایت http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=03 دانلود کردم.
کد مربوط به visual studio.net ولی با این حال موقع اجرا 23 تا error و 2 تا warning دریافت کردم.
در این برنامه در قسمت linker این هارو قرار داده:opengl32.lib glu32.lib odbc32.lib odbccp32.lib
البته نمی دونم این دو تا odbc32.lib odbccp32.lib برای چی استفاده شده.فایل .dll و .lib رو برای این دو فایل دارم ولی .h ندارم.
لطفا راهنمایی کنین که علت این پیام های خطا چی هست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
اصلا کدوم کد رو دانلود کنم تا بتونم از طریق اون کدهای opengl رو برای vc++ اجرا کنم.(چون آموزش رو برای vc++ دارم)البته لازمه بگم با کد مربوط به vc++6 که در سایت nehe بود به جایی نرسیدم برای همین پیشنهاد شد با vc++2005 کار کنم.
یکی نیست راهنماییم کنه آخه عجله دارم.:گریه:
pswin.pooya
چهارشنبه 13 بهمن 1389, 20:11 عصر
یه پروژه ساده که این همه دنگ و فنگ نداره. پیغام خطاها رو بگو تا بگیم مشکل از چیه.
sarakh
پنج شنبه 14 بهمن 1389, 23:19 عصر
آخه چرا می زنین تو ذوقم.مگه تو عمرم چقدر با open gl کار کردم.من فقط چند تا pdf آموزش برای کار کردن با opengl دارم.که خودم باید کار با opengl رو شروع کنم بدون کمک استاد.:گریه:
اگه اینجا هم کسی راهنمایی نکنه.استعداد های نهفته در من شکوفا نمی شه.:ناراحت:
وقتی این برنامه رو با visual studio .net اجرا می کنم یه پنجره باز می شه که می گه باید کد رو convert کنه.بعد از تبدیل شدن کد اجرا میشه ولی بعد از اجرا شدن در قسمت output چند تا پیغام نوشته :
'lesson3.exe': Loaded 'E:\graphic\VC++\visual studio open gl\Debug\lesson3.exe', Symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\opengl32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\secur32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\user32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\glu32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\ddraw.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\dciman32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\imm32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\lpk.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\usp10.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\uxtheme.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\MSCTF.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\version.dll', No symbols loaded.
'lesson3.exe': Unloaded 'C:\WINDOWS\system32\version.dll'
'lesson3.exe': Loaded 'C:\WINDOWS\system32\MSCTFIME.IME', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\Program Files\Internet Download Manager\idmmkb.dll', Binary was not built with debug information.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\atioglxx.dll', No symbols loaded.
'lesson3.exe': Loaded 'C:\WINDOWS\system32\mcd32.dll', No symbols loaded.
'lesson3.exe': Unloaded 'C:\WINDOWS\system32\mcd32.dll'
The program '[2348] lesson3.exe: Native' has exited with code 0 (0x0).
حالا اگه همین کد رو توی پروژه ای که خودم شروع کردم به ایجاد کردنش کپی کنم 23 تا پیغام خطا داره.
Error 1 error C2061: syntax error : identifier 'keys' e:\tc example\project heram\project ahraam\project ahraam\main.c 20
Error 2 error C2059: syntax error : ';' e:\tc example\project heram\project ahraam\project ahraam\main.c 20
Error 3 error C3409: empty attribute block is not allowed e:\tc example\project heram\project ahraam\project ahraam\main.c 20
Error 4 error C2143: syntax error : missing ']' before 'constant' e:\tc example\project heram\project ahraam\project ahraam\main.c 20
Error 5 error C2061: syntax error : identifier 'active' e:\tc example\project heram\project ahraam\project ahraam\main.c 21
Error 6 error C2059: syntax error : ';' e:\tc example\project heram\project ahraam\project ahraam\main.c 21
Error 7 error C2513: '/*global*/ ' : no variable declared before '=' e:\tc example\project heram\project ahraam\project ahraam\main.c 21
Error 8 error C2061: syntax error : identifier 'fullscreen' e:\tc example\project heram\project ahraam\project ahraam\main.c 22
Error 9 error C2059: syntax error : ';' e:\tc example\project heram\project ahraam\project ahraam\main.c 22
Error 10 error C2513: '/*global*/ ' : no variable declared before '=' e:\tc example\project heram\project ahraam\project ahraam\main.c 22
Error 11 error C2065: 'fullscreen' : undeclared identifier e:\tc example\project heram\project ahraam\project ahraam\main.c 82
Error 12 error C2146: syntax error : missing ')' before identifier 'fullscreenflag' e:\tc example\project heram\project ahraam\project ahraam\main.c 128
Error 13 error C2081: 'bool' : name in formal parameter list illegal e:\tc example\project heram\project ahraam\project ahraam\main.c 128
Error 14 error C2061: syntax error : identifier 'fullscreenflag' e:\tc example\project heram\project ahraam\project ahraam\main.c 128
Error 15 error C2059: syntax error : ';' e:\tc example\project heram\project ahraam\project ahraam\main.c 128
Error 16 error C2059: syntax error : ')' e:\tc example\project heram\project ahraam\project ahraam\main.c 128
Error 17 error C2449: found '{' at file scope (missing function header?) e:\tc example\project heram\project ahraam\project ahraam\main.c 129
Error 18 error C2059: syntax error : '}' e:\tc example\project heram\project ahraam\project ahraam\main.c 291
Warning 19 warning C4013: 'CreateGLWindow' undefined; assuming extern returning int e:\tc example\project heram\project ahraam\project ahraam\main.c 369
Error 20 error C2065: 'active' : undeclared identifier e:\tc example\project heram\project ahraam\project ahraam\main.c 391
Error 21 error C2065: 'keys' : undeclared identifier e:\tc example\project heram\project ahraam\project ahraam\main.c 391
Error 22 error C2109: subscript requires array or pointer type e:\tc example\project heram\project ahraam\project ahraam\main.c 391
Error 23 error C2109: subscript requires array or pointer type e:\tc example\project heram\project ahraam\project ahraam\main.c 400
Error 24 error C2109: subscript requires array or pointer type e:\tc example\project heram\project ahraam\project ahraam\main.c 402
Warning 25 warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data e:\tc example\project heram\project ahraam\project ahraam\main.c 416
sarakh
جمعه 15 بهمن 1389, 18:21 عصر
با سلام دوست عزیز,شما که می گین این پروژه ساده هست,بیا و در حق ما استادی کنین و کمک کنین که بتونم کار با opengl رو با visual c++2005.net شروع کنم.:لبخندساده:
من مشکلم فقط همین توابع اولیه هست که برای تولید پنجره به کار می ره.مثل killwindow,drawglscene وچندتا تابع دیگه که بدون خطا در محیطی که می خوام اجرا بشه و بتونم در اون شکل های مورد نظرم رو رسم کنم.
پیشاپیش ممنون.
pswin.pooya
جمعه 15 بهمن 1389, 20:33 عصر
سلام
من تا حالا n تا برنامه gl نوشتم و تا حالا به همچین مشکلهایی بر نخوردم. واقعیتش رو بخوای کپی سورس اونم یه سورس قدیمی بیشتر از این نمیشه ولی من خیلی خوب یادمه که دو سال پیش همین مثالهای nehe رو داخل vs2005 کپی کردم و ازشون استفاده کردم. حالا واقعا نمی دونم مشکل شما کجاست فقط میتونم یه پیشنهاد بکنم و اونم اینه که به جای توابع ویندوز برای ایجاد پنجره از glut کمک بگیری.
نکته دیگه اینه داخل کدی که خودت پروژه رو ایجاد کردی متغییرهایی مثل key و یا fullscreen رو هم تعریف نکردی که واقعا فکر نکنم نتونی اونها رو اصلاح کنی در حقیقت من فکر میکنم که لقمه آماده میخوای که برای این مورد هم خیلی زیاده فقط همت گشتن میخواد
sarakh
جمعه 15 بهمن 1389, 20:56 عصر
مطمئن باشین دنبال لقمه آماده نیستم.این قدر توی سایت های جور واجور گشتم و به جایی نرسیدم,که مجبور شدم بیام تو ی این سایت.
پروژه آماده نخواستم فقط یه کد به عنوان موتور گرافیکی می خوام که بتونم پروژمو شروع کنم.اون قدر هم فرصت و اطلاعات ندارم که خودم این کد هارو بنویسم.
و لازمه بگم متغیر های fullscreen و key هم تعریف شدن.از نوع boolean. ولی پیغام خطا داره.
میشه بگین دقیقا کدوم کد رو 2 سال پیش دانلود کردین و در vs2005 جواب داد؟؟؟؟؟؟؟؟
kochol
شنبه 16 بهمن 1389, 10:41 صبح
سلام
به نظرم کدت رو اینجا بذار یه نگاهی بهش بندازیم
sarakh
شنبه 16 بهمن 1389, 11:30 صبح
این کد رو از سایت nehe برای visual studio.net دانلود کردم.
/*
* This Code Was Created By Jeff Molofee 2000
* A HUGE Thanks To Fredric Echols For Cleaning Up
* And Optimizing The Base Code, Making It More Flexible!
* If You've Found This Code Useful, Please Let Me Know.
* Visit My Site At nehe.gamedev.net
* Conversion to Visual Studio.NET done by Grant James(ZEUS)
*/
#include <windows.h> // Header File For Windows
#include <gl\gl.h> // Header File For The OpenGL32 Library
#include <gl\glu.h> // Header File For The GLu32 Library
#include <gl\glaux.h> // Header File For The Glaux Library
HDC hDC=NULL; // Private GDI Device Context
HGLRC hRC=NULL; // Permanent Rendering Context
HWND hWnd=NULL; // Holds Our Window Handle
HINSTANCE hInstance; // Holds The Instance Of The Application
bool keys[256]; // Array Used For The Keyboard Routine
bool active=TRUE; // Window Active Flag Set To TRUE By Default
bool fullscreen=TRUE; // Fullscreen Flag Set To Fullscreen Mode By Default
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Declaration For WndProc
GLvoid ReSizeGLScene(GLsizei width, GLsizei height) // Resize And Initialize The GL Window
{
if (height==0) // Prevent A Divide By Zero By
{
height=1; // Making Height Equal One
}
glViewport(0,0,width,height); // Reset The Current Viewport
glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
glLoadIdentity(); // Reset The Projection Matrix
// Calculate The Aspect Ratio Of The Window
gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
glLoadIdentity(); // Reset The Modelview Matrix
}
int InitGL(GLvoid) // All Setup For OpenGL Goes Here
{
glShadeModel(GL_SMOOTH); // Enable Smooth Shading
glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // Black Background
glClearDepth(1.0f); // Depth Buffer Setup
glEnable(GL_DEPTH_TEST); // Enables Depth Testing
glDepthFunc(GL_LEQUAL); // The Type Of Depth Testing To Do
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice Perspective Calculations
return TRUE; // Initialization Went OK
}
int DrawGLScene(GLvoid) // Here's Where We Do All The Drawing
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
glLoadIdentity(); // Reset The Current Modelview Matrix
glTranslatef(-1.5f,0.0f,-6.0f); // Move Left 1.5 Units And Into The Screen 6.0
glBegin(GL_TRIANGLES); // Drawing Using Triangles
glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red
glVertex3f( 0.0f, 1.0f, 0.0f); // Top
glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green
glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue
glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
glEnd(); // Finished Drawing The Triangle
glTranslatef(3.0f,0.0f,0.0f); // Move Right 3 Units
glColor3f(0.5f,0.5f,1.0f); // Set The Color To Blue One Time Only
glBegin(GL_QUADS); // Draw A Quad
glVertex3f(-1.0f, 1.0f, 0.0f); // Top Left
glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right
glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
glEnd(); // Done Drawing The Quad
return TRUE; // Keep Going
}
GLvoid KillGLWindow(GLvoid) // Properly Kill The Window
{
if (fullscreen) // Are We In Fullscreen Mode?
{
ChangeDisplaySettings(NULL,0); // If So Switch Back To The Desktop
ShowCursor(TRUE); // Show Mouse Pointer
}
if (hRC) // Do We Have A Rendering Context?
{
if (!wglMakeCurrent(NULL,NULL)) // Are We Able To Release The DC And RC Contexts?
{
MessageBox(NULL,"Release Of DC And RC Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
}
if (!wglDeleteContext(hRC)) // Are We Able To Delete The RC?
{
MessageBox(NULL,"Release Rendering Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
}
hRC=NULL; // Set RC To NULL
}
if (hDC && !ReleaseDC(hWnd,hDC)) // Are We Able To Release The DC
{
MessageBox(NULL,"Release Device Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
hDC=NULL; // Set DC To NULL
}
if (hWnd && !DestroyWindow(hWnd)) // Are We Able To Destroy The Window?
{
MessageBox(NULL,"Could Not Release hWnd.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
hWnd=NULL; // Set hWnd To NULL
}
if (!UnregisterClass("OpenGL",hInstance)) // Are We Able To Unregister Class
{
MessageBox(NULL,"Could Not Unregister Class.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
hInstance=NULL; // Set hInstance To NULL
}
}
/* This Code Creates Our OpenGL Window. Parameters Are: *
* title - Title To Appear At The Top Of The Window *
* width - Width Of The GL Window Or Fullscreen Mode *
* height - Height Of The GL Window Or Fullscreen Mode *
* bits - Number Of Bits To Use For Color (8/16/24/32) *
* fullscreenflag - Use Fullscreen Mode (TRUE) Or Windowed Mode (FALSE) */
BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
{
GLuint PixelFormat; // Holds The Results After Searching For A Match
WNDCLASS wc; // Windows Class Structure
DWORD dwExStyle; // Window Extended Style
DWORD dwStyle; // Window Style
RECT WindowRect; // Grabs Rectangle Upper Left / Lower Right Values
WindowRect.left=(long)0; // Set Left Value To 0
WindowRect.right=(long)width; // Set Right Value To Requested Width
WindowRect.top=(long)0; // Set Top Value To 0
WindowRect.bottom=(long)height; // Set Bottom Value To Requested Height
fullscreen=fullscreenflag; // Set The Global Fullscreen Flag
hInstance = GetModuleHandle(NULL); // Grab An Instance For Our Window
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; // Redraw On Size, And Own DC For Window.
wc.lpfnWndProc = (WNDPROC) WndProc; // WndProc Handles Messages
wc.cbClsExtra = 0; // No Extra Window Data
wc.cbWndExtra = 0; // No Extra Window Data
wc.hInstance = hInstance; // Set The Instance
wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); // Load The Default Icon
wc.hCursor = LoadCursor(NULL, IDC_ARROW); // Load The Arrow Pointer
wc.hbrBackground = NULL; // No Background Required For GL
wc.lpszMenuName = NULL; // We Don't Want A Menu
wc.lpszClassName = "OpenGL"; // Set The Class Name
if (!RegisterClass(&wc)) // Attempt To Register The Window Class
{
MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
if (fullscreen) // Attempt Fullscreen Mode?
{
DEVMODE dmScreenSettings; // Device Mode
memset(&dmScreenSettings,0,sizeof(dmScreenSettings)); // Makes Sure Memory's Cleared
dmScreenSettings.dmSize=sizeof(dmScreenSettings); // Size Of The Devmode Structure
dmScreenSettings.dmPelsWidth = width; // Selected Screen Width
dmScreenSettings.dmPelsHeight = height; // Selected Screen Height
dmScreenSettings.dmBitsPerPel = bits; // Selected Bits Per Pixel
dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWID TH|DM_PELSHEIGHT;
// Try To Set Selected Mode And Get Results. NOTE: CDS_FULLSCREEN Gets Rid Of Start Bar.
if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCC ESSFUL)
{
// If The Mode Fails, Offer Two Options. Quit Or Use Windowed Mode.
if (MessageBox(NULL,"The Requested Fullscreen Mode Is Not Supported By\nYour Video Card. Use Windowed Mode Instead?","NeHe GL",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
{
fullscreen=FALSE; // Windowed Mode Selected. Fullscreen = FALSE
}
else
{
// Pop Up A Message Box Letting User Know The Program Is Closing.
MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK|MB_ICONSTOP);
return FALSE; // Return FALSE
}
}
}
if (fullscreen) // Are We Still In Fullscreen Mode?
{
dwExStyle=WS_EX_APPWINDOW; // Window Extended Style
dwStyle=WS_POPUP; // Windows Style
ShowCursor(FALSE); // Hide Mouse Pointer
}
else
{
dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; // Window Extended Style
dwStyle=WS_OVERLAPPEDWINDOW; // Windows Style
}
AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle); // Adjust Window To True Requested Size
// Create The Window
if (!(hWnd=CreateWindowEx( dwExStyle, // Extended Style For The Window
"OpenGL", // Class Name
title, // Window Title
dwStyle | // Defined Window Style
WS_CLIPSIBLINGS | // Required Window Style
WS_CLIPCHILDREN, // Required Window Style
0, 0, // Window Position
WindowRect.right-WindowRect.left, // Calculate Window Width
WindowRect.bottom-WindowRect.top, // Calculate Window Height
NULL, // No Parent Window
NULL, // No Menu
hInstance, // Instance
NULL))) // Dont Pass Anything To WM_CREATE
{
KillGLWindow(); // Reset The Display
MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
static PIXELFORMATDESCRIPTOR pfd= // pfd Tells Windows How We Want Things To Be
{
sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor
1, // Version Number
PFD_DRAW_TO_WINDOW | // Format Must Support Window
PFD_SUPPORT_OPENGL | // Format Must Support OpenGL
PFD_DOUBLEBUFFER, // Must Support Double Buffering
PFD_TYPE_RGBA, // Request An RGBA Format
bits, // Select Our Color Depth
0, 0, 0, 0, 0, 0, // Color Bits Ignored
0, // No Alpha Buffer
0, // Shift Bit Ignored
0, // No Accumulation Buffer
0, 0, 0, 0, // Accumulation Bits Ignored
16, // 16Bit Z-Buffer (Depth Buffer)
0, // No Stencil Buffer
0, // No Auxiliary Buffer
PFD_MAIN_PLANE, // Main Drawing Layer
0, // Reserved
0, 0, 0 // Layer Masks Ignored
};
if (!(hDC=GetDC(hWnd))) // Did We Get A Device Context?
{
KillGLWindow(); // Reset The Display
MessageBox(NULL,"Can't Create A GL Device Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
if (!(PixelFormat=ChoosePixelFormat(hDC,&pfd))) // Did Windows Find A Matching Pixel Format?
{
KillGLWindow(); // Reset The Display
MessageBox(NULL,"Can't Find A Suitable PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
if(!SetPixelFormat(hDC,PixelFormat,&pfd)) // Are We Able To Set The Pixel Format?
{
KillGLWindow(); // Reset The Display
MessageBox(NULL,"Can't Set The PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
if (!(hRC=wglCreateContext(hDC))) // Are We Able To Get A Rendering Context?
{
KillGLWindow(); // Reset The Display
MessageBox(NULL,"Can't Create A GL Rendering Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
if(!wglMakeCurrent(hDC,hRC)) // Try To Activate The Rendering Context
{
KillGLWindow(); // Reset The Display
MessageBox(NULL,"Can't Activate The GL Rendering Context.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
ShowWindow(hWnd,SW_SHOW); // Show The Window
SetForegroundWindow(hWnd); // Slightly Higher Priority
SetFocus(hWnd); // Sets Keyboard Focus To The Window
ReSizeGLScene(width, height); // Set Up Our Perspective GL Screen
if (!InitGL()) // Initialize Our Newly Created GL Window
{
KillGLWindow(); // Reset The Display
MessageBox(NULL,"Initialization Failed.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // Return FALSE
}
return TRUE; // Success
}
LRESULT CALLBACK WndProc( HWND hWnd, // Handle For This Window
UINT uMsg, // Message For This Window
WPARAM wParam, // Additional Message Information
LPARAM lParam) // Additional Message Information
{
switch (uMsg) // Check For Windows Messages
{
case WM_ACTIVATE: // Watch For Window Activate Message
{
if (!HIWORD(wParam)) // Check Minimization State
{
active=TRUE; // Program Is Active
}
else
{
active=FALSE; // Program Is No Longer Active
}
return 0; // Return To The Message Loop
}
case WM_SYSCOMMAND: // Intercept System Commands
{
switch (wParam) // Check System Calls
{
case SC_SCREENSAVE: // Screensaver Trying To Start?
case SC_MONITORPOWER: // Monitor Trying To Enter Powersave?
return 0; // Prevent From Happening
}
break; // Exit
}
case WM_CLOSE: // Did We Receive A Close Message?
{
PostQuitMessage(0); // Send A Quit Message
return 0; // Jump Back
}
case WM_KEYDOWN: // Is A Key Being Held Down?
{
keys[wParam] = TRUE; // If So, Mark It As TRUE
return 0; // Jump Back
}
case WM_KEYUP: // Has A Key Been Released?
{
keys[wParam] = FALSE; // If So, Mark It As FALSE
return 0; // Jump Back
}
case WM_SIZE: // Resize The OpenGL Window
{
ReSizeGLScene(LOWORD(lParam),HIWORD(lParam)); // LoWord=Width, HiWord=Height
return 0; // Jump Back
}
}
// Pass All Unhandled Messages To DefWindowProc
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
int WINAPI WinMain( HINSTANCE hInstance, // Instance
HINSTANCE hPrevInstance, // Previous Instance
LPSTR lpCmdLine, // Command Line Parameters
int nCmdShow) // Window Show State
{
MSG msg; // Windows Message Structure
BOOL done=FALSE; // Bool Variable To Exit Loop
// Ask The User Which Screen Mode They Prefer
if (MessageBox(NULL,"Would You Like To Run In Fullscreen Mode?", "Start FullScreen?",MB_YESNO|MB_ICONQUESTION)==IDNO)
{
fullscreen=FALSE; // Windowed Mode
}
// Create Our OpenGL Window
if (!CreateGLWindow("NeHe's Color Tutorial",640,480,16,fullscreen))
{
return 0; // Quit If Window Was Not Created
}
while(!done) // Loop That Runs While done=FALSE
{
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)) // Is There A Message Waiting?
{
if (msg.message==WM_QUIT) // Have We Received A Quit Message?
{
done=TRUE; // If So done=TRUE
}
else // If Not, Deal With Window Messages
{
TranslateMessage(&msg); // Translate The Message
DispatchMessage(&msg); // Dispatch The Message
}
}
else // If There Are No Messages
{
// Draw The Scene. Watch For ESC Key And Quit Messages From DrawGLScene()
if ((active && !DrawGLScene()) || keys[VK_ESCAPE]) // Active? Was There A Quit Received?
{
done=TRUE; // ESC or DrawGLScene Signalled A Quit
}
else // Not Time To Quit, Update Screen
{
SwapBuffers(hDC); // Swap Buffers (Double Buffering)
}
if (keys[VK_F1]) // Is F1 Being Pressed?
{
keys[VK_F1]=FALSE; // If So Make Key FALSE
KillGLWindow(); // Kill Our Current Window
fullscreen=!fullscreen; // Toggle Fullscreen / Windowed Mode
// Recreate Our OpenGL Window
if (!CreateGLWindow("NeHe's Color Tutorial",640,480,16,fullscreen))
{
return 0; // Quit If Window Was Not Created
}
}
}
}
// Shutdown
KillGLWindow(); // Kill The Window
return (msg.wParam); // Exit The Program
}
sarakh
شنبه 16 بهمن 1389, 12:24 عصر
سلام بالاخره تونستم کد رو برای vc++6 اجرا کنم.نمی دونم تا قبل کجا اشتباه می کردم.ولی این چند مورد رو انجام دادم تا جواب داد.
1- در vc++6 یه پروژه از نوع win32 application ایجاد کردم و empty project رو انتخاب کردم.
2- یه کلاس جدید ایجاد کردم.
3-دوتا زیر شاخه یکی برای .h و .cpp ایجاد شد که اینارو delete کردم.:لبخندساده:
4-روی کلاس که ایجاد کرده بودم دابل کلیک کردم و کدشو پاک کرم به جای اون کد,کد مربوط به موتور گرافیکی رو paste کردم.
5-در project\setting\linke این رو (OpenGL32.lib GLu32.lib GLaux.lib)قبل از kernel32 نوشتم.
6-این 3 فایل رو در مسیر مشخص شده قرار دادم.البته مسیرهای توی سیستمم کمی فرق داشت.ولی اصل lib و includ\gl هست که داشتم.
copy glut.h to C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl
(if you have a X86 base Processor) copy glut32.dll & glut32.lib to C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
(if you have a X64 base Processor) copy glut32.dll & glut32.lib to C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64
7-build\buil project.exe رو اجرا کردم.
8-برنامه رو اجرا کردم.
برنامه اجرا می شه.ولی اگر بخوام compile کنم پیغام خطا می ده به خاطر اینکه قبلا h.وcpp. رو پاک کردم.
با vc++6 کار نکردم.راهنماییم کنین چکار کنم که بتونم بدون پاک کردن h.وcpp. کد رو به پروژه اضافه کنم؟؟؟؟؟؟؟؟؟؟
sarakh
شنبه 16 بهمن 1389, 12:48 عصر
درست شد.نیازی نیست h.وcpp. رو پاک کنیم.کد رو در قسمت مربوط به cpp. اضافه کردم.
حالا کاملا جواب می ده.
amin1softco
شنبه 16 بهمن 1389, 16:20 عصر
بعضی وقتا بعضی کارا الکی گیر می کنه تمام مثال های nehe رو می شه با vc6 باز کرد
file -> workspace
http://jde.mywwsoft.com/index_files/image14981.gif
کل مثال رو بریزید در یک فولدر و اینجوری بازش کنید بدن هیچ دنگ وفنگی:لبخند: باز می شه:بوس:
sarakh
شنبه 23 بهمن 1389, 21:51 عصر
سلام
برای بافت گذاری روی یه هرم این پیغام خطا رو دریافت می کنم.
initialization failed
می شه بگین دلیلش چیه؟؟؟؟؟؟؟؟؟
واسه این,خیلییی خیلییییییی عجله دارم.
در ضمن آدرس عکس مورد نظرم رو اینجوری وارد کردم.درسته؟؟؟؟؟؟؟
if (TextureImage[0] = LoadBMP( "C:\pic.bmp" ) )
kochol
شنبه 23 بهمن 1389, 22:09 عصر
سلام
برای بافت گذاری روی یه هرم این پیغام خطا رو دریافت می کنم.
initialization failed
می شه بگین دلیلش چیه؟؟؟؟؟؟؟؟؟
واسه این,خیلییی خیلییییییی عجله دارم.
در ضمن آدرس عکس مورد نظرم رو اینجوری وارد کردم.درسته؟؟؟؟؟؟؟
if (TextureImage[0] = LoadBMP( "C:\pic.bmp" ) )
سلام
نه باید اینطوری بگی به جای یه \ باید \\ بذاری یا /
"C:\\pic.bmp"
sarakh
شنبه 23 بهمن 1389, 23:00 عصر
سلام
این تابع برای نورپردازی استفاده شده ولی نمی دونم مقادیر رو بر چه اساسی وارد کرده؟؟؟؟
لطفا راهنماییم کنین.
glNormal3f( 0.0f, 0.0f,-1.0f);
kochol
یک شنبه 24 بهمن 1389, 11:21 صبح
سلام
این ها بردار های عمود بر سطح مثلث است که برای نور پردازی استفاده می شه
sarakh
یک شنبه 24 بهمن 1389, 23:20 عصر
بر چه اساسی مقدار صفر یا یک یا منفی یک می گیره؟؟؟؟؟؟؟؟؟
kochol
سه شنبه 26 بهمن 1389, 13:31 عصر
یعنی بردار عمود بر سطح رو شما نمی دونید چی هست؟
یا اینکه روش محاسبه بردار normal رو می خواهید بدونید؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.