Personal Library

Материал из ALAS.

Содержание

[ПримерРусскойСтраницы]

Общее описание

Нечто вроде уютного трехмерного рабочего места для чтения книг. Книги можно брать/класть на полки, на стол, складывать в кучки. Мышь выполняет функцию пальцев, то есть страницы нужно оттягивать, чтобы они перелистывались, книги двигать.

Цель

Цель проекта - написание кабинета для чтения литературы, приближенного к естественной для человека форме.
Вот такая комнатка
Увеличить
Вот такая комнатка

Причины

1) География книги. Книга обладает определенной толщиной, слова и абзацы в ней четко фиксированы внутри страницы, каждая страница легко укладывается в голове. Человек затем может довольно легко найти ранее прочитанное место в книге просто по образу страницы, пролистнув нужный объем страниц одним движением.
При чтении размеченного документа на компьютере, человек читает как бы ленту, в которой трудно ориентироваться. А в гипертекстовых документах расположение слов и абзацев плавает в зависимости от ширины окна. Кроме того отсутствует ощущение толщины книги и прочитанного, которое не дает полоса прокрутки; даже в программах с жесткой разбивкой на страницы, вроде PDF-ридеров страницы как бы существуют независимо друг от друга и по сути представляют собой ту же ленту.
Решение: книга в PL сходна с обычной книгой. Она является трехмерным объектом, обладающей толщиной и четкой географией со свободным перемещением по ней с возможностью взять сразу несколько страниц.
2) Образ книги. У книги есть внешний вид, цвет, толщина, полиграфия и фактура, которые могут говорить о ее содержании. У книги есть определенное место на полке или на столе, в том числе и среди других книг, благодаря чему ее легко найти и воспринимать.
Текстовые файлы обладают только названием и иконкой, которая как правило ни о чем не говорит, в списке файлов у них нет определенного места, обычно это место определяется либо по алфавиту, либо по типу, размеру файла.
Решение: книга в PL обладает всеми перечисленными качествами обычной книги, а также занимает свое место на полке или в стопке на столе.
Прочие недостатки не являются столь существенными, однако имеют место быть:
- возможность делать заметки на полях без нарушения структуры текста
Решение: возможность рисовать «карандашом» поверх страниц, делая нужные заметки.
- в закладках электронных книг трудно ориентироваться, поскольку они состоят только из названия и с ними не связан никакой образ
Решение: возможность создавать закладки разного вида с разным текстом и располагать их так, чтобы были видны нужные из них.
- отсутствие рабочего пространства как такового. Книга как бы висит в воздухе и ни к чему не привязана.
Решение: существование тематического кабинета со своей характерной атмосферой, в котором можно поместить столы, полки и прочие объекты, где книги являются инструментами. Например, для чтения художественной литературы может подойти уютная комната в спокойных тонах, а для чтения технической литературы это может быть строгая комната с объектами для работы над рассматриваемой задачей.

Процесс

Модель книжной полки
Увеличить
Модель книжной полки
2D модель перелистывания книги (53Кб)
Перемещении мыши по оси x в пределах окна перелистывает страницы. Перемещение при зажатой левой кнопкой мыши меняет место, где взяты страницы. Перемещение при зажатой правой кнопкой мыши меняет толщину листаемых страниц.
3D модель книжной полки (967Кб)
Нажатие на книгу, стоящую на полке убирает книгу. Удерживание правой кнопки мыши перемещает книгу влево и вправо. Нажатие на заднюю стенку полки создает книгу. ESC переключает режим обзора/действия.
Решено не пользоваться библиотекой Coin3D, а написать свою под чистый OpenGL. Причины в том, что Coin представляет двойной уровень абстракции (помимо методов и элементов класса, нужно думать о полях), что вызывает трудности при проектировании объектов и доступе к их элементам. Кроме того, исследование исходного кода Coin тоже оказалось малоприятным. Везде стоят "FIXME" и часто нет проверок на успех, например, освобождения памяти. Кроме того, против говорит также и некоторая громоздкость Coin, хотя изучение этой библиотеки оказалось интересным и полезным.

Исследование

Сейчас библиотека находится в стадии исследования. Главные вопросы - как удобно организовать мир и взаимодействие с объектами мышью.

--alisid 14:12, 11 июля 2006 (MSD)

Инструменты

В Myst'е IV хорошо сделаны книги, перелистывание.
Увеличить
В Myst'е IV хорошо сделаны книги, перелистывание.
Общее описание Open Inventor
Об OpenGL Optimizer
The Inventor Mentor: Programming Object-Oriented 3D Graphics with Open Inventor, Release 2
Если я правильно понял, проект Open Inventor был приостановлен в 2003 году и был рассчитан на Linux-подобные системы. Зато есть проект Coin3D, продолжение Open Inventor, который работает и под Win32.
Вот еще одна 3d библиотека высокого уровня.

--alisid 13:38, 15 июня 2006 (MSD)

Личные инструменты