Виберіть один із них і попрацюйте.
1. Основи КГ
† це не книги OpenGL, вони просто використовують OpenGL для викладання рудиментарних концепцій CG
З них мої особисті фаворити - останні два. Більш практичний і, отже, захоплюючий для початківця; пояснення не дуже виразні, на відміну від інших, більш академічних книг у списку.
Причина візуалізації в режимі реального часу відсутня - це не забруднити книгу; це широке опитування методик, що застосовуються в галузі, ніж основи КГ; теорія-важка, ніж тренування-важка: початківцям потрібно добре розуміти ази. Навіть розглянута теорія є досить високим рівнем у багатьох моментах.
2. Основи математики
Щоб володіти комп'ютерною графікою або навіть розуміти основи, потрібно зрозуміти пристойну кількість математичних понять; це вимагає зручності використання тригонометрії та лінійної алгебри. Для цього рекомендую
- Векторна математика для 3D-комп’ютерної графіки на сьогоднішній день є найкращим підручником для векторів та матриць. Також інтерактивним є те, що в кінці кожного розділу є тестове запитання, щоб перевірити та запечатати розуміння цієї теми.
Книги
З цих математичних книг найінтуїтивнішим є перший з безліччю смішних анекдотів між ними, останній - для фанатиків з математики жорсткої основи (якщо ви боїтесь, що блювота з символікою, тримайтеся подалі від цього), хоча це хороша книга для досвідчені програмісти CG, яким потрібна довідка. Той, що знаходиться між ними, справді хороший тим, що він детально описує речі, які інші дві (або багато книг з цього приводу) пропускають, а в спектрі інтуїтивності та твердої математики він знаходиться між ними.
3. Підручники
Просто читання не запечатує поняття, тому розробка, безумовно, рекомендується. Для цього я знайшов ці підручники дуже хорошими; більшість також дають гідне пояснення теорії.
Не надто прив'язуйтесь до певної бібліотеки чи інструменту (наприклад, OpenGL, Direct3D, Metal, Vulkan, WebGL, SDL, Quartz тощо). Після того, як ви зрозумієте основні поняття (математика за ними), реалізуючи їх будь-якою мовою, або бібліотека не була б великою справою. Просто синтаксис / компілятор змінився б, але самі методи залишаються тими ж.