purebasic.info

PureBasic forum
Текущее время: Вс янв 21, 2018 11:29 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: рендеринг текстур
СообщениеДобавлено: Пт май 11, 2012 7:23 pm 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 222
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
сталкивался ли кто-то с рендерингом текстур?

встретился с примером, где используется gluBuild2DMipmaps, но пока результат не нравится, просто нет нужного цвета.

да и потом попал на ссылку, что функция работает медленно. выходит, что быстрее будут считать шейдеры, с ними пример был бы тоже неплох.

будем искать, короче говоря.

_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб май 12, 2012 7:26 am 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 222
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
получилось, неясен косяк с формированием RGB.
попробуем теперь куб


Вложения:
Комментарий к файлу: raw+просмотр+текстурирование
test.rar [48.53 KiB]
Скачиваний: 175

_________________
Захотелось мартышки любви со слоном, тут она и лопнула
Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб май 12, 2012 7:55 am 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 222
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
нашел, ошибка по выражению техсаппорта, в ДНК. теперь надо сделать динамическую текстуру и разобраться с выбором различных текстур
Код:
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
; *** 4K Framework for PureBasic [Win]
; ***
; *** original framework by auld
; *** pb-conversion by benny!weltenkonstrukteur.de
; ***
Global rquad.f ;Angle For The Quad ( NEW )
Global Dim texture.l(3)
 
IncludeFile "OpenGL.pbi"
Import "opengl32.lib"
 glClearDepth(depth.d) ;specifies the clear value for the depth buffer
EndImport
Import "glu32.lib"
 gluPerspective(fovy.d,aspect.d,zNear.d,zFar.d) ;sets up a perspective projection matrix
EndImport
 
Procedure do4KIntro()
 
  glClear_(#GL_DEPTH_BUFFER_BIT | #GL_COLOR_BUFFER_BIT);
  glLoadIdentity_() ;Reset The Current Modelview Matrix
 
  glTranslatef_(1.5,0.0,-7.0) ;Move Right 1.5 Units And Into The Screen 7.0
  glRotatef_(rquad,1.0,1.0,1.0) ;Rotate The Cube On X, Y & Z
 
  glBegin_(#GL_QUADS) ;Start Drawing The Cube
 
        glTexCoord2f_(0.0, 0.0)
  glVertex3f_( 1.0, 1.0,-1.0) ;Top Right Of The Quad (Top)
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(-1.0, 1.0,-1.0) ;Top Left Of The Quad (Top)
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(-1.0, 1.0, 1.0) ;Bottom Left Of The Quad (Top)
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_( 1.0, 1.0, 1.0) ;Bottom Right Of The Quad (Top)
 
        glTexCoord2f_(0.0, 0.0)
  glVertex3f_( 1.0,-1.0, 1.0) ;Top Right Of The Quad (Bottom)
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(-1.0,-1.0, 1.0) ;Top Left Of The Quad (Bottom)
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(-1.0,-1.0,-1.0) ;Bottom Left Of The Quad (Bottom)
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_( 1.0,-1.0,-1.0) ;Bottom Right Of The Quad (Bottom)
 
        glTexCoord2f_(0.0, 0.0)
  glVertex3f_( 1.0, 1.0, 1.0) ;Top Right Of The Quad (Front)
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(-1.0, 1.0, 1.0) ;Top Left Of The Quad (Front)
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(-1.0,-1.0, 1.0) ;Bottom Left Of The Quad (Front)
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_( 1.0,-1.0, 1.0) ;Bottom Right Of The Quad (Front)
 
        glTexCoord2f_(0.0, 0.0)
  glVertex3f_(-1.0, 1.0,-1.0) ;Top Right Of The Quad (Back)
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_( 1.0, 1.0,-1.0) ;Top Left Of The Quad (Back)
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_( 1.0,-1.0,-1.0) ;Bottom Left Of The Quad (Back)
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_(-1.0,-1.0,-1.0) ;Bottom Right Of The Quad (Back)
 
        glTexCoord2f_(0.0, 0.0)
  glVertex3f_(-1.0, 1.0, 1.0) ;Top Right Of The Quad (Left)
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_(-1.0, 1.0,-1.0) ;Top Left Of The Quad (Left)
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_(-1.0,-1.0,-1.0) ;Bottom Left Of The Quad (Left)
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_(-1.0,-1.0, 1.0) ;Bottom Right Of The Quad (Left)
 
        glTexCoord2f_(0.0, 0.0)
  glVertex3f_( 1.0, 1.0,-1.0) ;Top Right Of The Quad (Right)
  glTexCoord2f_(1.0, 0.0)
  glVertex3f_( 1.0, 1.0, 1.0) ;Top Left Of The Quad (Right)
  glTexCoord2f_(1.0, 1.0)
  glVertex3f_( 1.0,-1.0, 1.0) ;Bottom Left Of The Quad (Right)
  glTexCoord2f_(0.0, 1.0)
  glVertex3f_( 1.0,-1.0,-1.0) ;Bottom Right Of The Quad (Right)
 
  glEnd_() ;Done Drawing The Cube
 
 rquad=rquad-0.5 ;Decrease The Rotation Variable For The Cube
 
EndProcedure
;---------------------------------
pfd.PIXELFORMATDESCRIPTOR
pfd\cColorBits  = 32
pfd\cDepthBits  = 32
pfd\dwFlags     = #PFD_SUPPORT_OPENGL | #PFD_DOUBLEBUFFER
 
#width         = 800
#height        = 600
 
hDC = GetDC_ ( CreateWindow_("edit", 0, #WS_POPUP | #WS_VISIBLE | #WS_MAXIMIZE, 0, 0 ,0 ,0, 0 ,0 ,0, 0 ) )
;;hDC = GetDC_ (hwnd)
rquad.f=0
wglSetPixelFormat_ ( hDC, wglChoosePixelFormat_( hDC, pfd), pfd )
wglMakeCurrent_ ( hDC, wglCreateContext_(hDC) )
ShowCursor_(#False);
 
 glViewport_(0,0,#width,#height) ;Reset The Current Viewport
 glMatrixMode_(#GL_PROJECTION) ;Select The Projection Matrix
 glLoadIdentity_() ;Reset The Projection Matrix
 
 gluPerspective(45.0,Abs(#width/#height),0.1,100.0) ;Calculate The Aspect Ratio Of The Window
 
 glMatrixMode_(#GL_MODELVIEW) ;Select The Modelview Matrix
 glLoadIdentity_() ;Reset The Modelview Matrix
 
 glShadeModel_(#GL_SMOOTH) ;Enable Smooth Shading
 glClearColor_(0.0,0.0,0.0,0.5) ;Black Background
 glClearDepth(1.0) ;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  
 ;
  glGenTextures_(1,@texture(0)) ;Create The Texture
  glEnable_(#GL_TEXTURE_2D)
  glBindTexture_(#GL_TEXTURE_2D,texture(0))
 
glTexParameterf_(#GL_TEXTURE_2D, #GL_TEXTURE_MIN_FILTER, #GL_LINEAR);MAG?
glTexParameteri_(#GL_TEXTURE_2D, #GL_TEXTURE_MIN_FILTER, #GL_LINEAR);
 
Global *mem = AllocateMemory(256*256*4)
dst.l=*mem
 OpenFile(0, "texture.raw")
; ReadData(0, *mem, 256*256*3)
      For y = 0 To 255
        For x = 0 To 255
          rr=ReadByte(0)
          gg=ReadByte(0)
          bb=ReadByte(0)
          ;         Plot(x, y, RGB(rr,gg,bb))
          PokeB(dst,rr)
          PokeB(dst+1,gg)
          PokeB(dst+2,bb)
          dst=dst+3;4
         Next x
       Next y
 
 
gluBuild2DMipmaps_(#GL_TEXTURE_2D, 3, 255, 255, #GL_RGB, #GL_UNSIGNED_BYTE, *mem);
;glTexImage2D_(#GL_TEXTURE_2D, 0, 3, 255, 255, 0, #GL_RGB, #GL_UNSIGNED_BYTE,*mem);
 ;
 Repeat
  glClear_( #GL_DEPTH_BUFFER_BIT | #GL_COLOR_BUFFER_BIT )
    do4KIntro()
  SwapBuffers_ ( hDC );
Until ( GetAsyncKeyState_ (#VK_ESCAPE) )
FreeMemory(*mem)
 
 


_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб май 12, 2012 12:11 pm 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 222
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
с треском доделано, нужно еще палитру прикрутить, RGB оставляют желать лучшего.
как-то медленно работает, я ждал лучшего в динамике.

будем копать fragment shaders.
неясен вопрос с glBindTexture_ - не проще ли отдельно из развертки выбирать?


Вложения:
plasma.rar [2.42 KiB]
Скачиваний: 167

_________________
Захотелось мартышки любви со слоном, тут она и лопнула
Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB