spiiin: (2D)
Пролистал без особого энтузиазма OpenGL SuperBible, чтобы систематизировать свои знания о современных способах рисования (в общем, и так понятно – отдать видеокарте как можно большие пачки данных (по возможности и команд), разметив их, и работать дальше, оставив её рисовать и не дожидаясь результатов).

Для тестов написал рендер скелетной анимации моделей из Warcraft 3 с помощью OpenTK: массив матриц всех костей текущего кадра пишется в юниформный буфер, а в вершинных аттрибутах передаются индексы костей вершины, которые используются для выборки матриц:

Сам толком не понимаю, зачем мне это надо.
Tags:
spiiin: (2D)
Четверо программистов собрались, чтобы сделать библиотеку для визуализации BigData в браузере VisPy. По описанию, это должно быть удобное средство высокоуровнего описания сцены, но при беглом изучении мне показалось, что на текущей стадии разработки их обёртка над OpenGL под названием gloo не такая уж high-level – для её использования нужно иметь те же знания, что и при использовании OpenGL, понимать, что такое буферы данных, вершинные аттрибуты и переменные, а также фигачить шейдеры вовсю. За счёт этого её можно использовать в качестве обучения OpenGL и экспериментов с шейдерами.
Пример ноутбука с использованием VisPy, вывод осуществляется с помощью WebGL. Библиотека может использовать в качестве бекэнда не только WebGL, но и PyQT, PiSide, Pyglet и другие, но мне показался интересным вывод графики прямо страницу в ноутбуке Jupyter.
Получается примерно такая анимированная картинка:
Tags:
Jan. 22nd, 2012 09:42 pm

WebGL

spiiin: (Default)
Люди женятся, квартиры покупают, а я рисую джаваскриптом стеклянные чайники

посмотреть
Tags:
spiiin: (Default)
Cижу, изучаю маковских юных дев , курю маны.

Небольшая памятка:

1. Компилятор и binutils

gcc + cc + g++ - набор компиляторов, gcc вроде вызывает нужный, но иногда удобнее вызвать необходимый, чем подбирать командную строку, перекрывающую его умолчания.
Важные параметры:
-x передать параметр линкеру
-Ox - уровень оптимизации с номером x, x больше -> оптимизации сильнее. Включают в себя сразу наборы из разных опций оптимизации и генерации отладочной информации.
Стадии:
-E препроцессинг
-S ассемблерный листинг
-c только компиляция, не генерировать объектный код
-Dсимвол - передать дефайн препроцессору
-Wтекст - включение предупреждений
-Werror - считать предупреждения ошибками. Для фанатиков чистоты.
-iпуть - искать заголовочные файлы в заданной папке. Может встречаться в командной строке несколько раз.
-arch тип - архитектура, под которой будет выполняться код. Можно задать сразу несколько.

ld - линкер.
-lлиб - подключить библиотеку с именем либ
-Lпуть - путь к библиотекам
-framework, -weak_framework - подключить фреймворк (являющийся набором заголовочных файлов, ресурсов, библиотек).
ar и ranlib - утилиты для сборки файлов в библиотеку для последующей линковки. В более широком применении - архиватор.
nm - просмотр информации о библиотеках и исполнимых файлах.
strip - вырезалка имен символов.
arch и lipo - позволяют управлять исполнимыми файлами, содержащими несколько архитектур (создавать и запускать разные версии). Мак под рукой поддерживает i386, x64_86 и ppc.
sign - подписать файл сертификатом разработчика.

Еще бы gdc и shark упомянуть, но я ими не пользуюсь.


2. Cocoa
- Cocoa Event-Handling Guide
- View programming guide (часть)
- Opengl programming guide
- На http://developer.apple.com/ - доки по NSObject, NSResponder, NSBundle, NSApplication, NSRunLoop, NSWindow, NSView, NSOpenGLView, NSTimer, NSApplicationDelegate, NSViewController
- Как создать приложение без главного nib-файла : http://lapcatsoftware.com/blog/2007/06/10/working-without-a-nib-part-5-no-3
(правка info.plist + перегрузка NSApplication + подстановка своего класса вместо NSBundle + настройки стилей NSWindow для приема событий мыши и клавиатуры и внешнего вида)


3. Render
- Нативными для GUI являются Cocoa или Carbon. Cocoa лежит во фреймфорке ApplicationKit/UIKit (для macosx / iphone)
- В Cocoa для рисования можно использовать Quartz или OpenGL. OpenGL представлена в виде фреймворка OpenGL, в котором содержатся библиотеки gl, glu, glut, glx.
- Для использования OpenGL можно выбрать надстройки CGL* и NSOpenGL. Вторая состоит готовых классов-наборов установок для первой, а также частично просто дублирует классы CGL.
- A drawable object can be any of the following: a Cocoa view, offscreenmemory, a full-screen graphics device,
or a pixel buffer.
- Смешивать отрисовку контролов из Cocoa и отрисовку OpenGL надо также аккуратно, как и в любой другой ОС. А лучше вообще не смешивать.
- Полезная схема :
opengl on mac
Tags:

Profile

spiiin: (Default)
spiiin

July 2017

S M T W T F S
      1
2345 678
9101112131415
16171819202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 24th, 2017 06:42 am
Powered by Dreamwidth Studios