Eli Y
unread,Aug 17, 2014, 4:46:10 AM8/17/14Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to erlang-...@googlegroups.com
Делаю программку реализующую распералеленый расчёт процедурной геометрии, и хочу сделать её непремерно на эрланге. Для начала я решил посмотреть как на эрланге можно использовать OpenGL, чтоб не разделять приложение на вычисляющий сервер и дополнительный клиент, рисующий в окошке результат. Столкнулся с тем, что при использовании вершинных буферов в окошке не рисуется даже обычный квадрат, при том что через gl:'begin' / gl:'end' квадрат прекрасно рисуется, и аналогичный код использования VBO в c++ тоже прекрасно работает.
Вот код инициализации и заполнения буфера:
----------
[VBuff] = gl:genBuffers(1),
VBuffData = <<(-1.0):32/float, (-1.0):32/float, (1.0):32/float,
(1.0):32/float, (-1.0):32/float, (1.0):32/float,
(1.0):32/float, (1.0):32/float, (1.0):32/float,
(-1.0):32/float, (1.0):32/float, (1.0):32/float>>,
gl:bindBuffer(?GL_ARRAY_BUFFER, VBuff),
gl:bufferData(?GL_ARRAY_BUFFER, size(VBuffData), VBuffData, ?GL_STATIC_DRAW),
gl:bindBuffer(?GL_ARRAY_BUFFER, 0),
----------
А вот код отрисовки:
----------
gl:bindBuffer(?GL_ARRAY_BUFFER, VBuff),
gl:vertexPointer(3, ?GL_FLOAT, 0, 0),
gl:enableClientState(?GL_VERTEX_ARRAY),
gl:drawArrays(?GL_QUADS, 0, ?NUM_VERTS),
gl:disableClientState(?GL_VERTEX_ARRAY),
gl:bindBuffer(?GL_ARRAY_BUFFER, 0),
----------
Если кто-нибудь делал что-либо подобное на эрланге, подскажите, как заставить его рисовать геометрию из VBO. Я просто не знаю, что тут пошло не так.
Может стоит сделать всё-таки клиент-серверную архитектуру, отрисовщик вынести в клиент, а вычислитель написать на эрланге как сервер? Впринципе ведь ничего не мешает мне пойти и этим путём, программка-то учебная, единственное что код усложнится.