Форум программистов, компьютерный форум, киберфорум
Наши страницы
OpenGL
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
#1

Ничего не рисуется

19.05.2012, 19:56. Просмотров 2057. Ответов 23

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
//=================================================================================================
#include <windows.h>
//=================================================================================================
#include <fstream>
#include <iostream>
//=================================================================================================
#include <gl\gl.h>
#include <gl\glu.h>
//=================================================================================================
std::ofstream    Log;
//=================================================================================================
HGLRC            OpenGLContext;
//=================================================================================================
bool             InitApplication           (HINSTANCE  Instance     ,
                                            int        Show         );
//=================================================================================================
LRESULT CALLBACK WindowProcedureMainWindow (HWND       Window       ,
                                            UINT       Message      ,
                                            WPARAM     First        ,
                                            LPARAM     Second       );
//=================================================================================================
bool             SetOpenGLPixelFormat      (HDC        WindowContext);
//=================================================================================================
void             SetupScreen               (int        Width        ,
                                            int        Height       );
//=================================================================================================
void             OpenGLRender              (                        );
//=================================================================================================
int  WINAPI      WinMain                   (HINSTANCE  Instance     ,
                                            HINSTANCE  Previus      ,
                                            LPSTR      CommandLine  ,
                                            int        Show         )
{
 MSG Message;
 Log.open("Log.Log");
 Log<<"OpenGLContext at"<<(void *)&OpenGLContext<<"."<<std::endl;
 Log<<"WinMain                   at"<<(void *)WinMain                  <<"."<<std::endl;
 Log<<"InitApplication           at"<<(void *)InitApplication          <<"."<<std::endl;
 Log<<"WindowProcedureMainWindow at"<<(void *)WindowProcedureMainWindow<<"."<<std::endl;
 Log<<"SetOpenGLPixelFormat      at"<<(void *)SetOpenGLPixelFormat     <<"."<<std::endl;
 Log<<"SetupScreen               at"<<(void *)SetupScreen              <<"."<<std::endl;
 Log<<"OpenGLRender              at"<<(void *)OpenGLRender             <<"."<<std::endl;
 Log<<"WinMain is starting."<<std::endl;
 Log<<"Instance   ="<<(void *)Instance<<" at "<<(void *)&Instance<<"."<<std::endl;
 Log<<"Previus    ="<<(void *)Previus<<" at "<<(void *)&Previus<<"."<<std::endl;
 Log<<"CommandLine=\""<<CommandLine<<"\" at "<<(void *)CommandLine<<", pointer at "<<(void *)&CommandLine<<"."<<std::endl;
 Log<<"Show       ="<<Show<<" at "<<(void *)&Show<<"."<<std::endl;
 Log<<"Message at "<<(void *)&Message<<"."<<std::endl;
 if (InitApplication(Instance, Show))
 {
  Log<<"WinMain is continueing."<<std::endl;
  Log<<"Main loop is starting."<<std::endl;
  do
  {
   if (PeekMessage(&Message, NULL, 0, 0, PM_REMOVE))
   {
    TranslateMessage(&Message);
    DispatchMessage (&Message);
   }
   else
   {
    OpenGLRender();
   }
  } while (Message.message != WM_QUIT);
  Log<<"WinMain is continueing."<<std::endl;
  Log<<"Main loop is ending."<<std::endl;
 }
 else
 {
  Log<<"WinMain is continueing."<<std::endl;
 }
 Log<<"WinMain is ending with 0."<<std::endl;
 Log.close();
 return 0;
}
//=================================================================================================
bool             InitApplication           (HINSTANCE  Instance     ,
                                            int        Show         )
{
 HDC  WindowContext;
 char ApplicationName[16]="Sea jackals";
 char WindowClassMain[32]="Sea jackals.Window class.Main.";
 HWND WindowMain;
 WNDCLASSEX WindowClass;
 Log<<"InitApplication is starting."<<std::endl;
 Log<<"ApplicationName=\""<<ApplicationName<<"\" at "<<(void *)ApplicationName<<"."<<std::endl;
 Log<<"WindowClassMain=\""<<WindowClassMain <<"\" at "<<(void *)WindowClassMain<<"."<<std::endl;
 Log<<"Instance="<<(void *)Instance<<" at "<<(void *)&Instance<<"."<<std::endl;
 Log<<"Show    ="<<        Show    <<" at "<<(void *)&Show    <<"."<<std::endl;
 WindowClass.cbSize       =        sizeof        (WindowClass                 );
 WindowClass.style        =        CS_HREDRAW|
                                   CS_VREDRAW;
 WindowClass.lpfnWndProc  =        WindowProcedureMainWindow;
 WindowClass.cbClsExtra   =        0;
 WindowClass.cbWndExtra   =        0;
 WindowClass.hInstance    =        Instance;
 WindowClass.hIcon        =        LoadIcon      (NULL       , IDI_APPLICATION);
 WindowClass.hCursor      =        LoadCursor    (NULL       , IDC_ARROW      );
 WindowClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH                 );
 WindowClass.lpszMenuName =        NULL;
 WindowClass.lpszClassName=        WindowClassMain;
 WindowClass.hIconSm      =        LoadIcon      (NULL       , IDI_APPLICATION);
 Log<<"WindowClass at "<<(void *)&WindowClass<<"."<<std::endl;
 Log<<"WindowClass.cbSize       ="  <<        WindowClass.cbSize       <<" at "  <<(void *)&WindowClass.cbSize       <<"."<<std::endl;
 Log<<"WindowClass.style        ="  <<        WindowClass.style        <<" at "  <<(void *)&WindowClass.style        <<"."<<std::endl;
 Log<<"WindowClass.lpfnWndProc  ="  <<(void *)WindowClass.lpfnWndProc  <<" at "  <<(void *)&WindowClass.lpfnWndProc  <<"."<<std::endl;
 Log<<"WindowClass.cbClsExtra   ="  <<        WindowClass.cbClsExtra   <<" at "  <<(void *)&WindowClass.cbClsExtra   <<"."<<std::endl;
 Log<<"WindowClass.cbWndExtra   ="  <<        WindowClass.cbWndExtra   <<" at "  <<(void *)&WindowClass.cbWndExtra   <<"."<<std::endl;
 Log<<"WindowClass.hInstance    ="  <<(void *)WindowClass.hInstance    <<" at "  <<(void *)&WindowClass.hInstance    <<"."<<std::endl;
 Log<<"WindowClass.hIcon        ="  <<(void *)WindowClass.hIcon        <<" at "  <<(void *)&WindowClass.hIcon        <<"."<<std::endl;
 Log<<"WindowClass.hCursor      ="  <<(void *)WindowClass.hCursor      <<" at "  <<(void *)&WindowClass.hCursor      <<"."<<std::endl;
 Log<<"WindowClass.hbrBackground="  <<(void *)WindowClass.hbrBackground<<" at "  <<(void *)&WindowClass.hbrBackground<<"."<<std::endl;
 Log<<"WindowClass.lpszMenuName ="  <<(void *)WindowClass.lpszMenuName <<" at "  <<(void *)&WindowClass.lpszMenuName <<"."<<std::endl;
 Log<<"WindowClass.lpszClassName=\""<<        WindowClass.lpszClassName<<"\" at "<<(void *) WindowClass.lpszClassName<<", poinet at "<<(void *)&WindowClass.lpszClassName<<"."<<std::endl;
 Log<<"WindowClass.hIconSm      ="  <<(void *)WindowClass.hIconSm      <<" at "  <<(void *)&WindowClass.hIconSm      <<"."<<std::endl;
 RegisterClassEx(&WindowClass);
 Log<<"The main window class is registering."<<std::endl;
 WindowMain=CreateWindow(WindowClassMain    ,
                         ApplicationName    ,
                         WS_OVERLAPPEDWINDOW,
                         0                  ,
                         0                  ,
                         528                ,
                         704                ,
                         NULL               ,
                         NULL               ,
                         Instance           ,
                         NULL               );
 Log<<"InitApplication is continueing."<<std::endl;
 Log<<"WindowMain="<<(void *)WindowMain<<" at "<<(void *)&WindowMain<<"."<<std::endl;
 if (WindowMain)
 {
  ShowWindow  (WindowMain, Show);
  Log<<"Main window is showing by"<<Show<<"."<<std::endl;
  UpdateWindow(WindowMain);
  Log<<"Main window is updating."<<std::endl;
  WindowContext=GetDC(WindowMain);
  Log<<"WindowContext="<<(void *)WindowContext<<" at "<<(void *)&WindowContext<<"."<<std::endl;
  if(WindowContext)
  {
   if (SetOpenGLPixelFormat(WindowContext))
   {
    Log<<"InitApplication is continueing."<<std::endl;
    Log<<"Open GL context is seting."<<std::endl;
    SetupScreen(528,704);
    Log<<"InitApplication is continueing."<<std::endl;
    ReleaseDC(WindowMain, WindowContext);
    Log<<"WindowContext is releasing."<<std::endl;
    Log<<"InitApplication is ending with true."<<std::endl;
    return true;
   }
   else
   {
    Log<<"InitApplication is continueing."<<std::endl;
    Log<<"Open GL context is notseting."<<std::endl;
    ReleaseDC(WindowMain, WindowContext);
    Log<<"WindowContext is releasing."<<std::endl;
    Log<<"InitApplication is ending with false."<<std::endl;
    return false;
   }
  }
  Log<<"InitApplication is ending with false."<<std::endl;
 }
 Log<<"InitApplication is ending with false."<<std::endl;
 return false;
}
//=================================================================================================
LRESULT CALLBACK WindowProcedureMainWindow (HWND       Window       ,
                                            UINT       Message      ,
                                            WPARAM     First        ,
                                            LPARAM     Second       )
{
 switch (Message)
 {
  case WM_DESTROY:  Log<<"WindowProcedureMainWindow is stating."<<std::endl;
                    Log<<"Window ="<<(void *)Window<<" at "<<(void *)&Window <<"."<<std::endl;
                    Log<<"Message=WM_DESTROY at "<<(void *)&Message<<"."<<std::endl;
                    Log<<"First  ="<<(void *)First <<" at "<<(void *)&First  <<"."<<std::endl;
                    Log<<"Second ="<<(void *)Second<<" at "<<(void *)&Second <<"."<<std::endl;
                    PostQuitMessage(0);
  break;
 }
 return DefWindowProc (Window, Message, First, Second);
}
//=================================================================================================
bool             SetOpenGLPixelFormat      (HDC        WindowContext)
{
 PIXELFORMATDESCRIPTOR Descriptor;
 int                   Format;
 Log<<"SetOpenGLPixelFormat is stating."<<std::endl;
 Log<<"WindowContext="<<(void *)WindowContext<<" at "<<(void *)&WindowContext<<"."<<std::endl;
 Descriptor.nSize       =sizeof(Descriptor);
 Descriptor.nVersion    =1;
 Descriptor.dwFlags     =PFD_DRAW_TO_WINDOW|
                         PFD_SUPPORT_OPENGL|
                         PFD_DOUBLEBUFFER;
 Descriptor.dwLayerMask =PFD_MAIN_PLANE;
 Descriptor.iPixelType  =PFD_TYPE_RGBA;
 Descriptor.cColorBits  =32;
 Descriptor.cDepthBits  =24;
 Descriptor.cAccumBits  = 0;
 Descriptor.cStencilBits= 0;
 Log<<"Descriptor at "<<(void *)&Descriptor<<"."<<std::endl;
 Log<<"Descriptor.nSize       ="<<     Descriptor.nSize       <<" at "<<(void *)&Descriptor.nSize       <<"."<<std::endl;
 Log<<"Descriptor.nVersion    ="<<     Descriptor.nVersion    <<" at "<<(void *)&Descriptor.nVersion    <<"."<<std::endl;
 Log<<"Descriptor.dwFlags     ="<<     Descriptor.dwFlags     <<" at "<<(void *)&Descriptor.dwFlags     <<"."<<std::endl;
 Log<<"Descriptor.dwLayerMask ="<<     Descriptor.dwLayerMask <<" at "<<(void *)&Descriptor.dwLayerMask <<"."<<std::endl;
 Log<<"Descriptor.iPixelType  ="<<(int)Descriptor.iPixelType  <<" at "<<(void *)&Descriptor.iPixelType  <<"."<<std::endl;
 Log<<"Descriptor.cColorBits  ="<<(int)Descriptor.cColorBits  <<" at "<<(void *)&Descriptor.cColorBits  <<"."<<std::endl;
 Log<<"Descriptor.cDepthBits  ="<<(int)Descriptor.cDepthBits  <<" at "<<(void *)&Descriptor.cDepthBits  <<"."<<std::endl;
 Log<<"Descriptor.cAccumBits  ="<<(int)Descriptor.cAccumBits  <<" at "<<(void *)&Descriptor.cAccumBits  <<"."<<std::endl;
 Log<<"Descriptor.cStencilBits="<<(int)Descriptor.cStencilBits<<" at "<<(void *)&Descriptor.cStencilBits<<"."<<std::endl;
 Format=ChoosePixelFormat(WindowContext, &Descriptor);
 Log<<"Format="<<Format<<" at "<<(void *)&Format<<"."<<std::endl;
 if (Format)
 {
  Log<<"Format is right."<<std::endl;
  if (SetPixelFormat(WindowContext, Format, &Descriptor))
  {
   Log<<"Pixel format is seting."<<std::endl;
   OpenGLContext=wglCreateContext(WindowContext);
   Log<<"OpenGL context is creating."<<std::endl;
   wglMakeCurrent(WindowContext, OpenGLContext);
   Log<<"OpenGL context is making current."<<std::endl;
   Log<<"SetOpenGLPixelFormat is ending with true."<<std::endl;
   return true;
  }
  else
  {
   Log<<"Pixel format is notseting."<<std::endl;
  }
 }
 else
 {
  Log<<"Format is wrong."<<std::endl;
 }
 Log<<"SetOpenGLPixelFormat is ending false."<<std::endl;
 return false;
}
//=================================================================================================
void             SetupScreen               (int        Width        ,
                                            int        Height       )
{
 Log<<"SetupScreen is stating."<<std::endl;
 Log<<"Width ="<<Width <<" at "<<(void *)&Width <<"."<<std::endl;
 Log<<"Height="<<Height<<" at "<<(void *)&Height<<"."<<std::endl;
 glViewport(0, 0, Width, Height);
 Log<<"OpenGL viewport is seting with the coodrdinates: 0, 0, "<<Width<<", "<<Height<<"."<<std::endl;
 glMatrixMode(GL_PROJECTION);
 Log<<"OpenGL matrix mode is seting to "<<GL_PROJECTION<<"."<<std::endl;
 glLoadIdentity();
 Log<<"OpenGL identity loading."<<std::endl;
 gluPerspective(90.0, (double)Width/(double)Height, 1.0, 10000.0);
 Log<<"OpenGL glu perspective is seting with the parametrs: "<<90.0<<", "<<(double)Width/(double)Height<<", "<<1.0<<", "<<10000.0<<"."<<std::endl;
 glMatrixMode(GL_MODELVIEW);
 Log<<"OpenGL matrix mode is seting to "<<GL_MODELVIEW<<"."<<std::endl;
 glLoadIdentity();
 Log<<"OpenGL identity loading."<<std::endl;
 Log<<"SetupScreen is ending."<<std::endl;
}
//=================================================================================================
void             OpenGLRender              (                        )
{
 static double d=0.0;
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 0.0 , 0.0, 0.0, 1.0);
 glEnable(GL_DEPTH_TEST);
 GL_TRIANGLES;
 glColor3ub(255,255,0);
 glVertex3d(0.0, 2.0, 0.0);
 glVertex3d(1.0, 2.0, 0.0);
 glVertex3d(0.0, 2.0, 1.0);
 glDisable(GL_DEPTH_TEST);
}
//=================================================================================================
По идее смотрю на треугольник, но не вижу его. Где ошибка?

Добавлено через 1 минуту
Прикладываю лог:
OpenGLContext at0x477118.
WinMain at0x401318.
InitApplication at0x4018ae.
WindowProcedureMainWindow at0x402473.
SetOpenGLPixelFormat at0x402650.
SetupScreen at0x402cf4.
OpenGLRender at0x4030c4.
WinMain is starting.
Instance =0x400000 at 0x28fea0.
Previus =0 at 0x28fea4.
CommandLine="" at 0x514c10, pointer at 0x28fea8.
Show =10 at 0x28feac.
Message at 0x28fe74.
InitApplication is starting.
ApplicationName="Sea jackals" at 0x28fe1c.
WindowClassMain="Sea jackals.Window class.Main." at 0x28fdf8.
Instance=0x400000 at 0x28fe50.
Show =10 at 0x28fe54.
WindowClass at 0x28fdc8.
WindowClass.cbSize =48 at 0x28fdc8.
WindowClass.style =3 at 0x28fdcc.
WindowClass.lpfnWndProc =0x402473 at 0x28fdd0.
WindowClass.cbClsExtra =0 at 0x28fdd4.
WindowClass.cbWndExtra =0 at 0x28fdd8.
WindowClass.hInstance =0x400000 at 0x28fddc.
WindowClass.hIcon =0x10027 at 0x28fde0.
WindowClass.hCursor =0x10003 at 0x28fde4.
WindowClass.hbrBackground=0x1900010 at 0x28fde8.
WindowClass.lpszMenuName =0 at 0x28fdec.
WindowClass.lpszClassName="Sea jackals.Window class.Main." at 0x28fdf8, poinet at 0x28fdf0.
WindowClass.hIconSm =0x10027 at 0x28fdf4.
The main window class is registering.
InitApplication is continueing.
WindowMain=0x1d114c at 0x28fe18.
Main window is showing by10.
Main window is updating.
WindowContext=0x250126dc at 0x28fe2c.
SetOpenGLPixelFormat is stating.
WindowContext=0x250126dc at 0x28fd90.
Descriptor at 0x28fd54.
Descriptor.nSize =40 at 0x28fd54.
Descriptor.nVersion =1 at 0x28fd56.
Descriptor.dwFlags =37 at 0x28fd58.
Descriptor.dwLayerMask =0 at 0x28fd70.
Descriptor.iPixelType =0 at 0x28fd5c.
Descriptor.cColorBits =32 at 0x28fd5d.
Descriptor.cDepthBits =24 at 0x28fd6b.
Descriptor.cAccumBits =0 at 0x28fd66.
Descriptor.cStencilBits=0 at 0x28fd6c.
Format=2 at 0x28fd7c.
Format is right.
Pixel format is seting.
OpenGL context is creating.
OpenGL context is making current.
SetOpenGLPixelFormat is ending with true.
InitApplication is continueing.
Open GL context is seting.
SetupScreen is stating.
Width =528 at 0x28fd90.
Height=704 at 0x28fd94.
OpenGL viewport is seting with the coodrdinates: 0, 0, 528, 704.
OpenGL matrix mode is seting to 5889.
OpenGL identity loading.
OpenGL glu perspective is seting with the parametrs: 90, 0.75, 1, 10000.
OpenGL matrix mode is seting to 5888.
OpenGL identity loading.
SetupScreen is ending.
InitApplication is continueing.
WindowContext is releasing.
InitApplication is ending with true.
WinMain is continueing.
Main loop is starting.
WindowProcedureMainWindow is stating.
Window =0x1d114c at 0x28ef88.
Message=WM_DESTROY at 0x28ef8c.
First =0 at 0x28ef90.
Second =0 at 0x28ef94.
WinMain is continueing.
Main loop is ending.
WinMain is ending with 0.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2012, 19:56
Ответы с готовыми решениями:

Не рисуется ничего
в общем определила функции create для 3х фигур Круг: virtual void...

Почему ничего не рисуется?
Показывается черное окно с FPS и все. SharpGL using SharpGL; using...

В чем ошибка? Ничего не рисуется
В чем ошибка? Ничего не рисуется using System; using System.Drawing;...

Не рисуется треугольник :(
Не рисуется треугольник:( делаю вот по этому уроку:...

Чайник не рисуется
Чайник который реагирует на нажатие левой и правой клавиши мыши #define...

23
Nequti
246 / 51 / 1
Регистрация: 21.05.2011
Сообщений: 297
20.05.2012, 05:26 #2
C++
1
2
3
4
5
 GL_TRIANGLES;
 glColor3ub(255,255,0);
 glVertex3d(0.0, 2.0, 0.0);
 glVertex3d(1.0, 2.0, 0.0);
 glVertex3d(0.0, 2.0, 1.0);
Вместо этого напишите,
C++
1
2
3
4
5
6
glBegin(GL_TRIANGLES);
 glColor3ub(255,255,0);
 glVertex3d(0.0, 2.0, 0.0);
 glVertex3d(1.0, 2.0, 0.0);
 glVertex3d(0.0, 2.0, 1.0);
glEnd();
1
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
20.05.2012, 09:51  [ТС] #3
Результат тот же: просто белое окно.
0
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.05.2012, 14:07 #4
taras atavin, выложите код функции рендера
0
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
21.05.2012, 15:26  [ТС] #5
Ну вот же он в конце листинга:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//=================================================================================================
void             OpenGLRender              (                        )
{
 static double d=0.0;
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 0.0 , 0.0, 0.0, 1.0);
 glEnable(GL_DEPTH_TEST);
 GL_TRIANGLES;
 glColor3ub(255,255,0);
 glVertex3d(0.0, 2.0, 0.0);
 glVertex3d(1.0, 2.0, 0.0);
 glVertex3d(0.0, 2.0, 1.0);
 glDisable(GL_DEPTH_TEST);
}
//=================================================================================================
, после исправления стало:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//=================================================================================================
void             OpenGLRender              (                        )
{
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 0.0 , 0.0, 0.0, 1.0);
 glEnable(GL_DEPTH_TEST);
 glBegin(GL_TRIANGLES);
 glColor3ub(255,255,0);
 glVertex3d(0.0, 2.0, 0.0);
 glVertex3d(1.0, 2.0, 0.0);
 glVertex3d(0.0, 2.0, 1.0);
 glEnd();
 glDisable(GL_DEPTH_TEST);
}
//=================================================================================================
.
0
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.05.2012, 16:51 #6
Вот, исправила:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void OpenGLRender()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW); // нужно перед gluLookAt(...); 
    glLoadIdentity();
    gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 1.8 , 0.0, 0.0, 1.0); // и вот здесь у вас камера смотрела вниз
 
    glBegin(GL_TRIANGLES);
    glColor3ub(255,255,255);
    glVertex3d(0.0, 20.0, 0.0); // Здесь отодвинула 
    glVertex3d(1.0, 20.0, 0.0); // треугольник в 10 раз дальше
    glVertex3d(0.0, 20.0, 1.0); // чтобы он попал в поле зрения
    glEnd();
 
    SwapBuffers(hDC); // и еще вот это забыли
}
1
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
21.05.2012, 17:01  [ТС] #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
//=================================================================================================
#include <windows.h>
//=================================================================================================
#include <fstream>
#include <iostream>
//=================================================================================================
#include <gl\gl.h>
#include <gl\glu.h>
//=================================================================================================
std::ofstream    Log;
//=================================================================================================
HDC              WindowContext;
//=================================================================================================
HGLRC            OpenGLContext;
//=================================================================================================
bool             InitApplication           (HINSTANCE  Instance     ,
                                            int        Show         );
//=================================================================================================
LRESULT CALLBACK WindowProcedureMainWindow (HWND       Window       ,
                                            UINT       Message      ,
                                            WPARAM     First        ,
                                            LPARAM     Second       );
//=================================================================================================
bool             SetOpenGLPixelFormat      (HDC        WindowContext);
//=================================================================================================
void             SetupScreen               (int        Width        ,
                                            int        Height       );
//=================================================================================================
void             OpenGLRender              (                        );
//=================================================================================================
int  WINAPI      WinMain                   (HINSTANCE  Instance     ,
                                            HINSTANCE  Previus      ,
                                            LPSTR      CommandLine  ,
                                            int        Show         )
{
 MSG Message;
 Log.open("Log.Log");
 Log<<"OpenGLContext at"<<(void *)&OpenGLContext<<"."<<std::endl;
 Log<<"WinMain                   at"<<(void *)WinMain                  <<"."<<std::endl;
 Log<<"InitApplication           at"<<(void *)InitApplication          <<"."<<std::endl;
 Log<<"WindowProcedureMainWindow at"<<(void *)WindowProcedureMainWindow<<"."<<std::endl;
 Log<<"SetOpenGLPixelFormat      at"<<(void *)SetOpenGLPixelFormat     <<"."<<std::endl;
 Log<<"SetupScreen               at"<<(void *)SetupScreen              <<"."<<std::endl;
 Log<<"OpenGLRender              at"<<(void *)OpenGLRender             <<"."<<std::endl;
 Log<<"WinMain is starting."<<std::endl;
 Log<<"Instance   ="<<(void *)Instance<<" at "<<(void *)&Instance<<"."<<std::endl;
 Log<<"Previus    ="<<(void *)Previus<<" at "<<(void *)&Previus<<"."<<std::endl;
 Log<<"CommandLine=\""<<CommandLine<<"\" at "<<(void *)CommandLine<<", pointer at "<<(void *)&CommandLine<<"."<<std::endl;
 Log<<"Show       ="<<Show<<" at "<<(void *)&Show<<"."<<std::endl;
 Log<<"Message at "<<(void *)&Message<<"."<<std::endl;
 if (InitApplication(Instance, Show))
 {
  Log<<"WinMain is continueing."<<std::endl;
  Log<<"Main loop is starting."<<std::endl;
  do
  {
   if (PeekMessage(&Message, NULL, 0, 0, PM_REMOVE))
   {
    TranslateMessage(&Message);
    DispatchMessage (&Message);
   }
   else
   {
    OpenGLRender();
   }
  } while (Message.message != WM_QUIT);
  Log<<"WinMain is continueing."<<std::endl;
  Log<<"Main loop is ending."<<std::endl;
 }
 else
 {
  Log<<"WinMain is continueing."<<std::endl;
 }
 Log<<"WinMain is ending with 0."<<std::endl;
 Log.close();
 return 0;
}
//=================================================================================================
bool             InitApplication           (HINSTANCE  Instance     ,
                                            int        Show         )
{
 char ApplicationName[16]="Sea jackals";
 char WindowClassMain[32]="Sea jackals.Window class.Main.";
 HWND WindowMain;
 WNDCLASSEX WindowClass;
 Log<<"InitApplication is starting."<<std::endl;
 Log<<"ApplicationName=\""<<ApplicationName<<"\" at "<<(void *)ApplicationName<<"."<<std::endl;
 Log<<"WindowClassMain=\""<<WindowClassMain <<"\" at "<<(void *)WindowClassMain<<"."<<std::endl;
 Log<<"Instance="<<(void *)Instance<<" at "<<(void *)&Instance<<"."<<std::endl;
 Log<<"Show    ="<<        Show    <<" at "<<(void *)&Show    <<"."<<std::endl;
 WindowClass.cbSize       =        sizeof        (WindowClass                 );
 WindowClass.style        =        CS_HREDRAW|
                                   CS_VREDRAW;
 WindowClass.lpfnWndProc  =        WindowProcedureMainWindow;
 WindowClass.cbClsExtra   =        0;
 WindowClass.cbWndExtra   =        0;
 WindowClass.hInstance    =        Instance;
 WindowClass.hIcon        =        LoadIcon      (NULL       , IDI_APPLICATION);
 WindowClass.hCursor      =        LoadCursor    (NULL       , IDC_ARROW      );
 WindowClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH                 );
 WindowClass.lpszMenuName =        NULL;
 WindowClass.lpszClassName=        WindowClassMain;
 WindowClass.hIconSm      =        LoadIcon      (NULL       , IDI_APPLICATION);
 Log<<"WindowClass at "<<(void *)&WindowClass<<"."<<std::endl;
 Log<<"WindowClass.cbSize       ="  <<        WindowClass.cbSize       <<" at "  <<(void *)&WindowClass.cbSize       <<"."<<std::endl;
 Log<<"WindowClass.style        ="  <<        WindowClass.style        <<" at "  <<(void *)&WindowClass.style        <<"."<<std::endl;
 Log<<"WindowClass.lpfnWndProc  ="  <<(void *)WindowClass.lpfnWndProc  <<" at "  <<(void *)&WindowClass.lpfnWndProc  <<"."<<std::endl;
 Log<<"WindowClass.cbClsExtra   ="  <<        WindowClass.cbClsExtra   <<" at "  <<(void *)&WindowClass.cbClsExtra   <<"."<<std::endl;
 Log<<"WindowClass.cbWndExtra   ="  <<        WindowClass.cbWndExtra   <<" at "  <<(void *)&WindowClass.cbWndExtra   <<"."<<std::endl;
 Log<<"WindowClass.hInstance    ="  <<(void *)WindowClass.hInstance    <<" at "  <<(void *)&WindowClass.hInstance    <<"."<<std::endl;
 Log<<"WindowClass.hIcon        ="  <<(void *)WindowClass.hIcon        <<" at "  <<(void *)&WindowClass.hIcon        <<"."<<std::endl;
 Log<<"WindowClass.hCursor      ="  <<(void *)WindowClass.hCursor      <<" at "  <<(void *)&WindowClass.hCursor      <<"."<<std::endl;
 Log<<"WindowClass.hbrBackground="  <<(void *)WindowClass.hbrBackground<<" at "  <<(void *)&WindowClass.hbrBackground<<"."<<std::endl;
 Log<<"WindowClass.lpszMenuName ="  <<(void *)WindowClass.lpszMenuName <<" at "  <<(void *)&WindowClass.lpszMenuName <<"."<<std::endl;
 Log<<"WindowClass.lpszClassName=\""<<        WindowClass.lpszClassName<<"\" at "<<(void *) WindowClass.lpszClassName<<", poinet at "<<(void *)&WindowClass.lpszClassName<<"."<<std::endl;
 Log<<"WindowClass.hIconSm      ="  <<(void *)WindowClass.hIconSm      <<" at "  <<(void *)&WindowClass.hIconSm      <<"."<<std::endl;
 RegisterClassEx(&WindowClass);
 Log<<"The main window class is registering."<<std::endl;
 WindowMain=CreateWindow(WindowClassMain    ,
                         ApplicationName    ,
                         WS_OVERLAPPEDWINDOW,
                         0                  ,
                         0                  ,
                         528                ,
                         704                ,
                         NULL               ,
                         NULL               ,
                         Instance           ,
                         NULL               );
 Log<<"InitApplication is continueing."<<std::endl;
 Log<<"WindowMain="<<(void *)WindowMain<<" at "<<(void *)&WindowMain<<"."<<std::endl;
 if (WindowMain)
 {
  ShowWindow  (WindowMain, Show);
  Log<<"Main window is showing by"<<Show<<"."<<std::endl;
  UpdateWindow(WindowMain);
  Log<<"Main window is updating."<<std::endl;
  WindowContext=GetDC(WindowMain);
  Log<<"WindowContext="<<(void *)WindowContext<<" at "<<(void *)&WindowContext<<"."<<std::endl;
  if(WindowContext)
  {
   if (SetOpenGLPixelFormat(WindowContext))
   {
    Log<<"InitApplication is continueing."<<std::endl;
    Log<<"Open GL context is seting."<<std::endl;
    SetupScreen(528,704);
    Log<<"InitApplication is continueing."<<std::endl;
    ReleaseDC(WindowMain, WindowContext);
    Log<<"WindowContext is releasing."<<std::endl;
    Log<<"InitApplication is ending with true."<<std::endl;
    return true;
   }
   else
   {
    Log<<"InitApplication is continueing."<<std::endl;
    Log<<"Open GL context is notseting."<<std::endl;
    Log<<"InitApplication is ending with false."<<std::endl;
    return false;
   }
  }
  Log<<"InitApplication is ending with false."<<std::endl;
 }
 Log<<"InitApplication is ending with false."<<std::endl;
 return false;
}
//=================================================================================================
LRESULT CALLBACK WindowProcedureMainWindow (HWND       Window       ,
                                            UINT       Message      ,
                                            WPARAM     First        ,
                                            LPARAM     Second       )
{
 switch (Message)
 {
  case WM_DESTROY:  Log<<"WindowProcedureMainWindow is stating."<<std::endl;
                    Log<<"Window ="<<(void *)Window<<" at "<<(void *)&Window <<"."<<std::endl;
                    Log<<"Message=WM_DESTROY at "<<(void *)&Message<<"."<<std::endl;
                    Log<<"First  ="<<(void *)First <<" at "<<(void *)&First  <<"."<<std::endl;
                    Log<<"Second ="<<(void *)Second<<" at "<<(void *)&Second <<"."<<std::endl;
                    PostQuitMessage(0);
  break;
 }
 return DefWindowProc (Window, Message, First, Second);
}
//=================================================================================================
bool             SetOpenGLPixelFormat      (HDC        WindowContext)
{
 PIXELFORMATDESCRIPTOR Descriptor;
 int                   Format;
 Log<<"SetOpenGLPixelFormat is stating."<<std::endl;
 Log<<"WindowContext="<<(void *)WindowContext<<" at "<<(void *)&WindowContext<<"."<<std::endl;
 Descriptor.nSize       =sizeof(Descriptor);
 Descriptor.nVersion    =1;
 Descriptor.dwFlags     =PFD_DRAW_TO_WINDOW|
                         PFD_SUPPORT_OPENGL|
                         PFD_DOUBLEBUFFER;
 Descriptor.dwLayerMask =PFD_MAIN_PLANE;
 Descriptor.iPixelType  =PFD_TYPE_RGBA;
 Descriptor.cColorBits  =32;
 Descriptor.cDepthBits  =24;
 Descriptor.cAccumBits  = 0;
 Descriptor.cStencilBits= 0;
 Log<<"Descriptor at "<<(void *)&Descriptor<<"."<<std::endl;
 Log<<"Descriptor.nSize       ="<<     Descriptor.nSize       <<" at "<<(void *)&Descriptor.nSize       <<"."<<std::endl;
 Log<<"Descriptor.nVersion    ="<<     Descriptor.nVersion    <<" at "<<(void *)&Descriptor.nVersion    <<"."<<std::endl;
 Log<<"Descriptor.dwFlags     ="<<     Descriptor.dwFlags     <<" at "<<(void *)&Descriptor.dwFlags     <<"."<<std::endl;
 Log<<"Descriptor.dwLayerMask ="<<     Descriptor.dwLayerMask <<" at "<<(void *)&Descriptor.dwLayerMask <<"."<<std::endl;
 Log<<"Descriptor.iPixelType  ="<<(int)Descriptor.iPixelType  <<" at "<<(void *)&Descriptor.iPixelType  <<"."<<std::endl;
 Log<<"Descriptor.cColorBits  ="<<(int)Descriptor.cColorBits  <<" at "<<(void *)&Descriptor.cColorBits  <<"."<<std::endl;
 Log<<"Descriptor.cDepthBits  ="<<(int)Descriptor.cDepthBits  <<" at "<<(void *)&Descriptor.cDepthBits  <<"."<<std::endl;
 Log<<"Descriptor.cAccumBits  ="<<(int)Descriptor.cAccumBits  <<" at "<<(void *)&Descriptor.cAccumBits  <<"."<<std::endl;
 Log<<"Descriptor.cStencilBits="<<(int)Descriptor.cStencilBits<<" at "<<(void *)&Descriptor.cStencilBits<<"."<<std::endl;
 Format=ChoosePixelFormat(WindowContext, &Descriptor);
 Log<<"Format="<<Format<<" at "<<(void *)&Format<<"."<<std::endl;
 if (Format)
 {
  Log<<"Format is right."<<std::endl;
  if (SetPixelFormat(WindowContext, Format, &Descriptor))
  {
   Log<<"Pixel format is seting."<<std::endl;
   OpenGLContext=wglCreateContext(WindowContext);
   Log<<"OpenGL context is creating."<<std::endl;
   wglMakeCurrent(WindowContext, OpenGLContext);
   Log<<"OpenGL context is making current."<<std::endl;
   Log<<"SetOpenGLPixelFormat is ending with true."<<std::endl;
   return true;
  }
  else
  {
   Log<<"Pixel format is notseting."<<std::endl;
  }
 }
 else
 {
  Log<<"Format is wrong."<<std::endl;
 }
 Log<<"SetOpenGLPixelFormat is ending false."<<std::endl;
 return false;
}
//=================================================================================================
void             SetupScreen               (int        Width        ,
                                            int        Height       )
{
 Log<<"SetupScreen is stating."<<std::endl;
 Log<<"Width ="<<Width <<" at "<<(void *)&Width <<"."<<std::endl;
 Log<<"Height="<<Height<<" at "<<(void *)&Height<<"."<<std::endl;
 glViewport(0, 0, Width, Height);
 Log<<"OpenGL viewport is seting with the coodrdinates: 0, 0, "<<Width<<", "<<Height<<"."<<std::endl;
 glMatrixMode(GL_PROJECTION);
 Log<<"OpenGL matrix mode is seting to "<<GL_PROJECTION<<"."<<std::endl;
 glLoadIdentity();
 Log<<"OpenGL identity loading."<<std::endl;
 gluPerspective(90.0, (double)Width/(double)Height, 1.0, 10000.0);
 Log<<"OpenGL glu perspective is seting with the parametrs: "<<90.0<<", "<<(double)Width/(double)Height<<", "<<1.0<<", "<<10000.0<<"."<<std::endl;
 glMatrixMode(GL_MODELVIEW);
 Log<<"OpenGL matrix mode is seting to "<<GL_MODELVIEW<<"."<<std::endl;
 glLoadIdentity();
 Log<<"OpenGL identity loading."<<std::endl;
 Log<<"SetupScreen is ending."<<std::endl;
}
//=================================================================================================
void             OpenGLRender              (                        )
{
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 1.8 , 0.0, 0.0, 2.8);
 //glEnable(GL_DEPTH_TEST);
 glBegin(GL_TRIANGLES);
 glColor3ub(255,255,0);
 glVertex3d( 0.0, 20.0,  0.0);
 glVertex3d(10.0, 20.0,  0.0);
 glVertex3d( 0.0, 20.0, 10.0);
 glEnd();
 SwapBuffers(WindowContext);
 //glDisable(GL_DEPTH_TEST);
}
//=================================================================================================
, то же самое. Отдельно рендер:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//=================================================================================================
void             OpenGLRender              (                        )
{
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 1.8 , 0.0, 0.0, 2.8);
 //glEnable(GL_DEPTH_TEST);
 glBegin(GL_TRIANGLES);
 glColor3ub(255,255,0);
 glVertex3d( 0.0, 20.0,  0.0);
 glVertex3d(10.0, 20.0,  0.0);
 glVertex3d( 0.0, 20.0, 10.0);
 glEnd();
 SwapBuffers(WindowContext);
 //glDisable(GL_DEPTH_TEST);
}
//=================================================================================================
, лог:
OpenGLContext at0x47711c.
WinMain at0x401318.
InitApplication at0x4018ae.
WindowProcedureMainWindow at0x402447.
SetOpenGLPixelFormat at0x402624.
SetupScreen at0x402cc8.
OpenGLRender at0x403098.
WinMain is starting.
Instance =0x400000 at 0x28fea0.
Previus =0 at 0x28fea4.
CommandLine="" at 0x7a4c10, pointer at 0x28fea8.
Show =10 at 0x28feac.
Message at 0x28fe74.
InitApplication is starting.
ApplicationName="Sea jackals" at 0x28fe20.
WindowClassMain="Sea jackals.Window class.Main." at 0x28fdfc.
Instance=0x400000 at 0x28fe50.
Show =10 at 0x28fe54.
WindowClass at 0x28fdcc.
WindowClass.cbSize =48 at 0x28fdcc.
WindowClass.style =3 at 0x28fdd0.
WindowClass.lpfnWndProc =0x402447 at 0x28fdd4.
WindowClass.cbClsExtra =0 at 0x28fdd8.
WindowClass.cbWndExtra =0 at 0x28fddc.
WindowClass.hInstance =0x400000 at 0x28fde0.
WindowClass.hIcon =0x10027 at 0x28fde4.
WindowClass.hCursor =0x10003 at 0x28fde8.
WindowClass.hbrBackground=0x1900010 at 0x28fdec.
WindowClass.lpszMenuName =0 at 0x28fdf0.
WindowClass.lpszClassName="Sea jackals.Window class.Main." at 0x28fdfc, poinet at 0x28fdf4.
WindowClass.hIconSm =0x10027 at 0x28fdf8.
The main window class is registering.
InitApplication is continueing.
WindowMain=0x5107e at 0x28fe1c.
Main window is showing by10.
Main window is updating.
WindowContext=0x820121fb at 0x477118.
SetOpenGLPixelFormat is stating.
WindowContext=0x820121fb at 0x28fd90.
Descriptor at 0x28fd54.
Descriptor.nSize =40 at 0x28fd54.
Descriptor.nVersion =1 at 0x28fd56.
Descriptor.dwFlags =37 at 0x28fd58.
Descriptor.dwLayerMask =0 at 0x28fd70.
Descriptor.iPixelType =0 at 0x28fd5c.
Descriptor.cColorBits =32 at 0x28fd5d.
Descriptor.cDepthBits =24 at 0x28fd6b.
Descriptor.cAccumBits =0 at 0x28fd66.
Descriptor.cStencilBits=0 at 0x28fd6c.
Format=2 at 0x28fd7c.
Format is right.
Pixel format is seting.
OpenGL context is creating.
OpenGL context is making current.
SetOpenGLPixelFormat is ending with true.
InitApplication is continueing.
Open GL context is seting.
SetupScreen is stating.
Width =528 at 0x28fd90.
Height=704 at 0x28fd94.
OpenGL viewport is seting with the coodrdinates: 0, 0, 528, 704.
OpenGL matrix mode is seting to 5889.
OpenGL identity loading.
OpenGL glu perspective is seting with the parametrs: 90, 0.75, 1, 10000.
OpenGL matrix mode is seting to 5888.
OpenGL identity loading.
SetupScreen is ending.
InitApplication is continueing.
WindowContext is releasing.
InitApplication is ending with true.
WinMain is continueing.
Main loop is starting.
WindowProcedureMainWindow is stating.
Window =0x5107e at 0x28ef88.
Message=WM_DESTROY at 0x28ef8c.
First =0 at 0x28ef90.
Second =0 at 0x28ef94.
WinMain is continueing.
Main loop is ending.
WinMain is ending with 0.
0
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
21.05.2012, 17:03  [ТС] #8
И скрин:
0
Миниатюры
Ничего не рисуется  
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.05.2012, 17:50 #9
А это мне за вас написать
C++
1
glMatrixMode(GL_MODELVIEW);
Добавлено через 3 минуты
C++
1
gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 1.8 , 0.0, 0.0, 2.8);
И последний параметр можно ставить 1.0, он только указывает направление верха

Добавлено через 39 минут
Еще не нашла у вас
C++
1
glClearColor( 1.0f, 1.0f, 1.0f, 0.0f ); /// ставить ДО glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
0
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.05.2012, 17:52 #10
Вот ваш желтый треугольник
0
Миниатюры
Ничего не рисуется  
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.05.2012, 17:55 #11
Естественно у вас все будет белым
C++
1
WindowClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH                 );
без функции, которая задает цвет очистки
C++
1
glClearColor( 1.0f, 1.0f, 1.0f, 0.0f );
0
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
21.05.2012, 18:48  [ТС] #12
Цитата Сообщение от programina Посмотреть сообщение
glClearColor( 1.0f, 1.0f, 1.0f, 0.0f );
А куда её?
0
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.05.2012, 19:01 #13
Цитата Сообщение от taras atavin Посмотреть сообщение
А куда её?
C++
1
2
glClearColor( 0.4f, 0.6f, 0.8f, 0.0f );
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Потом покажете свой треугольник
0
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
22.05.2012, 05:22  [ТС] #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//=================================================================================================
void             OpenGLRender              (                        )
{
 static double r=0;
 static double g=0;
 static double b=0;
 glClearColor(r, g, b, 0.0);
 r+=0.001;
 if (r>=1.0)
 {
  r=0.0;
 }
 g+=0.0015;
 if (g>=1.0)
 {
  g=0.0;
 }
 b+=0.0025;
 if (b>=1.0)
 {
  b=0.0;
 }
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 1.8 , 0.0, 0.0, 2.8);
 //glEnable(GL_DEPTH_TEST);
 glBegin(GL_TRIANGLES);
 glColor3ub(255,255,0);
 glVertex3d( 0.0, 20.0,  0.0);
 glVertex3d(10.0, 20.0,  0.0);
 glVertex3d( 0.0, 20.0, 10.0);
 glEnd();
 SwapBuffers(WindowContext);
 //glDisable(GL_DEPTH_TEST);
}
//=================================================================================================
То же самое белое окно.
0
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
22.05.2012, 06:08 #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//=================================================================================================
void             OpenGLRender              (                        )
{
 static double r=0;
 static double g=0;
 static double b=0;
 glClearColor(r, g, b, 0.0);
 r+=0.001;
 if (r>=1.0)
 {
  r=0.0;
 }
 g+=0.0015;
 if (g>=1.0)
 {
  g=0.0;
 }
 b+=0.0025;
 if (b>=1.0)
 {
  b=0.0;
 }
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glMatrixMode(GL_MODELVIEW); /* !!! НАПИСАТЬ ЗДЕСЬ !!! */
 glLoadIdentity();
 gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 1.8 , 0.0, 0.0, 2.8);
 //glEnable(GL_DEPTH_TEST);
 glBegin(GL_TRIANGLES);
 glColor3ub(255,255,0);
 glVertex3d( 0.0, 20.0,  0.0);
 glVertex3d(10.0, 20.0,  0.0);
 glVertex3d( 0.0, 20.0, 10.0);
 glEnd();
 SwapBuffers(WindowContext);
 //glDisable(GL_DEPTH_TEST);
}
//=================================================================================================
0
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
22.05.2012, 06:14  [ТС] #16
Цитата Сообщение от programina Посмотреть сообщение
/* !!! НАПИСАТЬ ЗДЕСЬ !!! */
Что здесь надо написать?

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//=================================================================================================
void             OpenGLRender              (                        )
{
 static double r=0.0;
 static double g=0.0;
 static double b=0.0;
 glClearColor(r, g, b, 0.0);
 r+=0.001;
 if (r>=1.0)
 {
  r=0.0;
 }
 g+=0.0015;
 if (g>=1.0)
 {
  g=0.0;
 }
 b+=0.0025;
 if (b>=1.0)
 {
  b=0.0;
 }
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 1.8 , 0.0, 0.0, 2.8);
 //glEnable(GL_DEPTH_TEST);
 glBegin(GL_TRIANGLES);
 glColor3ub(255,255,0);
 glVertex3d( 0.0, 20.0,  0.0);
 glVertex3d(10.0, 20.0,  0.0);
 glVertex3d( 0.0, 20.0, 10.0);
 glEnd();
 SwapBuffers(WindowContext);
 //glDisable(GL_DEPTH_TEST);
}
//=================================================================================================
Всё то же самое.
0
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
22.05.2012, 10:28 #17
taras atavin, не растраивайтесь, сегодня около 5 часов вечера выложу свой проект с камерой и загрузкой текстуры, постараюсь комментриями показать где-какая функция и что она делает
0
taras atavin
4204 / 1764 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
22.05.2012, 10:35  [ТС] #18
Около 5-ти часов по какому времени?
0
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
22.05.2012, 18:09 #19
Цитата Сообщение от taras atavin Посмотреть сообщение
Около 5-ти часов по какому времени?
По московсому времени

Добавлено через 3 минуты
Сейчас никак не могу, только после работы

Добавлено через 7 часов 16 минут
Вот архив с проектом под CodeBlocks, для обработки мыши используется DirectInput, поэтому на всякий случай прицепила DirectX SDK чтобы вы сразу смогли скомпилировать
0
programina
2050 / 605 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
22.05.2012, 18:11 #20
______________________________
0
Вложения
Тип файла: zip open2.zip (2.85 Мб, 10 просмотров)
22.05.2012, 18:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2012, 18:11

Как рисуется полигон?
Вопрос идет к глубоким основам и склонен чисто в исследовательских целях. Беда...

Не рисуется сцена на текстуру
Ку, кодеры Opengl 3.0+ GLFW, GLAD Уже два дня ломаю голову над этой...

По какому принципу рисуется объект?
glColor3f(0.3,0.3,0.3); glBegin(GL_POINTS); for(int i=0;i&lt;10000;i++) {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru