Pull to refresh
30
0
Vlad Svoka @Shchvova

GameDev

Send message

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 2 из 6

Reading time7 min
Views142K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Update:


Внимание, статья 4в даёт новую, более простую версию растеризатора.

Давайте знакомиться, это я.



То есть, модель моей башки, отрендеренная в программе, которую мы сделаем за ближайшие час-два.

В прошлый раз мы нарисовали проволочную сетку трёхмерной модели, в этот раз мы зальём полигоны. Точнее, треугольники, так как OpenGL практически любой полигон триангулирует, поэтому ни к чему разбирать сложный случай. Напоминаю, что этот цикл статей создан для самостоятельного программирования. Время, которое я здесь привожу — это не время чтения моего кода. Это время написания вашего кода с нуля. Мой код здесь только для того, чтобы сравнить ваш (рабочий) код с моим. Я совсем не являюсь хорошим программистом, поэтому ваш код может быть существенно лучше моего. Любая критика приветствуется, любым вопросам рад.

Пожалуйста, если вы следуете этому туториалу и пишете свой код, выкладывайте его на github.com/code.google.com и им подобные и давайте ссылки в комментариях! Это может хорошо помочь как и вам (другие люди могут чего посоветовать), так и будущим читателям.
Читать дальше →
Total votes 119: ↑116 and ↓3+113
Comments116

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

Reading time7 min
Views399K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Постановка задачи


Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →
Total votes 198: ↑196 and ↓2+194
Comments120

Интерактивное голосовое редактирование текста с помощью новых речевых технологий от Яндекса

Reading time11 min
Views96K
Сегодня наше приложение Диктовка для интерактивного написания и редактирования текста голосом появилось в AppStore и Google Play. Его главная задача — продемонстрировать часть новых возможностей комплекса речевых технологий Яндекса. Именно о том, чем интересны и уникальны наши технологии распознавания и синтеза речи, я хочу рассказать в этом посте.



Пара слов, чтобы вы понимали, о чём пойдёт речь. Яндекс уже давно предоставляет бесплатное мобильное API, которое можно использовать, например, для распознавания адресов и голосовых запросов к поиску. За этот год мы смогли довести его качество почти до того же уровня, на котором такие запросы и реплики понимают сами люди. И теперь мы делаем следующий шаг — модель для распознавания свободной речи на любую тему.

Кроме этого, наш синтез речи поддерживает эмоции в голосе. И, насколько нам известно, это пока первый коммерчески доступный синтез речи с такой возможностью.

Обо всём этом, а также о некоторых других возможностях SpeechKit: об активации голосом, автоматической расстановке пунктуационных знаков и распознавании смысловых объектов в тексте — читайте ниже.
Читать дальше →
Total votes 116: ↑113 and ↓3+110
Comments104

Курс пиксель-арта

Reading time4 min
Views292K
Это перевод публикации «Les Forges Pixel Art Course».

pdf на английском.

Часть 1: Правильные инструменты
Часть 2: Линии и кривые
Часть 3: Перспективы
Часть 4: Тень и свет
Часть 5: Палитры цветов
Часть 6: Сглаживание
Часть 7: Текстуры и размытие
Часть 8: Мир тайлов

Предисловие


Есть много определений пиксель-арта, но здесь мы будем использовать такое: изображение пиксель-арт, если оно создано целиком руками, и присутствует контроль над цветом и позицией каждого пиксела, который нарисован. Несомненно, в пиксель арте включение или использование кистей или инструментов размытия или машин деградации (degraded machines, не уверен), и других опций ПО, которые «современны», нами не используются (вообще-то put at our disposal значит «в нашем распоряжении», но по логике вроде правильнее так). Он ограничен инструментами такими как «карандаш» и «заливка».

Тем не менее не скажешь, что пиксель-арт или не-пиксель-арт графика — более или менее красива. Справедливее сказать, что пиксель-арт другой, и он лучше подходит для игр стиля «ретро» (как Супер Нинтендо или Гейм Бой). Вы можете также комбинировать техники изученные здесь, с эффектами из не-пиксель-арта, для создания гибридного стиля.

Так, здесь вы будете изучать техническую часть пиксель-арта. Тем не менее никогда я не сделаю вас художником… по простой причине, что я тоже не художник. Я не научу вас ни человеческой анатомии, ни структуре искусств, и мало скажу о перспективе. В этом руководстве, вы можете найти много информации о техниках пиксель-арта. В конце, вы должны будете быть способны создать персонажей и пейзаж для ваших игр, при условии что вы будете внимательны, практиковаться регулярно, и применять данные советы.
Читать дальше →
Total votes 43: ↑32 and ↓11+21
Comments44

Что молодёжь должна знать о прошлом веке

Reading time4 min
Views6.9K
За два дня до наступления второго десятилетия 21 века возрастные пользователи Reddit составили список воспоминаний, которыми хотят поделиться с младшим поколением. Хотя молодёжь вряд ли поверит, что их отцы могли жить в подобных условиях, когда не было интернета.

• Я написал письмо на физическом листе бумаги и отправил его в Microsoft с вопросом, как вводить математические формулы в Word (на моём компьютере Macintosh II в конце 80-х). Получил ответ, также бумажной почтой, от настоящего программиста Microsoft, который очень подробно ответил на мой вопрос.

• Пультов от телевизора не было. Нужно было оторвать спину от дивана, встать и подойти к телевизору, чтобы нажать кнопку.
Читать дальше →
Total votes 217: ↑199 and ↓18+181
Comments486

Как довести MacOS X до ума: несколько советов

Reading time5 min
Views2.6K
Эта статья написана для всех добрых людей мира,
но изначально была задумана как ответ на вопросы членов группы Ufriends.

Я давно обещал составить что-то типа краткого списока дополнительных программ и настроек, делающих ваш Mac лучше. Мне они облегчают жизнь и экономят время. Детальных пошаговых инструкций в этой статье нет — но информации, безусловно, достаточно, чтобы сделать настройку быстро и безопасно. В любом случае — думайте, так сказать, головой перед любым действием. Это, конечно, касается не только настройки MacOS X.



Введение

Зачем настраивать и так прекрасно работающий MacOS? Те, кому довелось какое-то время проработать на этой операционной системе, знают: просто установленная из коробки она удобнее для работы, чем тщательно вылизанный и нагнутый под вас Windows. Куда же еще тюнить-то? Разве лучшее — не враг хорошего? Ответ прост: добавьте к перфектности работы инженеров яблочной компании лучшее из того, что создано Свободным Сообществом — и вы получите лучшую из операционных систем, которые когда-либо были созданы человечеством. Следуя рекомендациям этой статьи, вы сможете:
  • сэкономить существенное время на автоматизации часто повторяемых действий (лично я выиграл около 10 часов в неделю, я не преувеличиваю)
  • сделать работу на вашем Маке удобнее
  • больше сосредотачиваться на творческой части работы
  • забыть о войне форматов
  • ???
  • PROFIT!
Итак, начнем!
Читать дальше →
Total votes 65: ↑33 and ↓32+1
Comments50

И снова про Juick: Q&A

Reading time2 min
Views1.1K
Вот уже почти полгода в сети существует сервис микроблоггинга juick. За это время он успел собрать вместе множество интересных людей и сейчас активно развивается. О жуике уже писали в момент его создания, теперь же мы предлагаем рассмотреть то, во что он развился на данный момент, а заодно публикуем небольшой список вопросов и ответов для тех, кто слышит о нем первый раз.

— А что это?


— Это сервис для микроблоггинга, который работает через jabber. Его особенность в том, что веб-интерфейс не играет значительной роли — всё взаимодействие происходит через jabber-бота. Бот присылает уведомления, новые сообщения Ваших друзей и новые комментария в темах, на которые Вы подписаны.

Читать дальше →
Total votes 70: ↑61 and ↓9+52
Comments55

10 шагов создания идеального личного сайта

Reading time5 min
Views6.6K
Если ты создаёшь сайт-портфолио, то у тебя несколько причин: ты фрилансер — и тебе нужно показать людям что ты умеешь и как это умеешь, или ты студент (или безработный) — и ты ищишь через сайт потенциальных работодателей, или ты работаешь в отделе крупной компании — и вы создаёте корпоративный блог о жизни компании и показываете что делает ваша компания — не важно кто ты, главное что через сайт-портфолио к тебе обратятся люди (за помощью или для того, чтобы дать тебе работу).

1. Логотип


Логотип — это первое что видит пользователь. На западе люди привыкли смотреть слева-направо, по этому логотип располагают обычно в верхнем левом углу сайта, чтобы сразу понять кто владелец данного сайта.
Читать дальше →
Total votes 142: ↑87 and ↓55+32
Comments58

ARSights — дополненная реальность

Reading time2 min
Views4K
Сначала смотрим видео…


Дополненная реальность – термин, относящийся ко всем проектам, направленным на доплнение реальности любыми виртуальными элементами. Дополненная реальность – составляющая часть смешанной реальности, в которую также входит «дополненная виртуальность» (когда реальные объекты интегрируются в виртуальную среду). В принципе, смешанную реальность можно считать переходным этапом между реальностью действительной и виртуальной.
Читать дальше →
Total votes 63: ↑59 and ↓4+55
Comments17

Почему я не стану успешным

Reading time3 min
Views6.4K
На протяжении некоторого времени я активно читал книжки и статьи про различные методы достижения успеха. Материалы эти были совершенно разные: брошюры «как изменить себя за 10 дней», статьи на некоторых интернет-ресурсах, книжки из серии «помоги себе сам», простенькие учебники по психологии, записки успешных людей.

Прочитав, осознав, и кое-что попробовав, я пришел к выводу: я не стану успешным.

Почему?
Читать дальше →
Total votes 314: ↑258 and ↓56+202
Comments421

Маки. Гид по выживанию. Часть 1

Reading time12 min
Views93K
Это первая часть большой переводной статьи. Здесь и далее все мои комментарии выделены курсивом.

Маки — очень надёжные компьютеры, но это не значит, что они не страдают от ошибок, несчастных случаев и, в некоторых случаях, просто глупости. Мишель Делио (Michelle Delio) из MacLife составила список самых критических моментов на Маке и расскажет вам, как их исправить и избежать таких неприятностей в дальнейшем.

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

При этом, если PC могут быть совсем вредными, Маки редко бывают злонравными. Обычно они работают плохо, только если их провоцировать. Например, если вы прольёте напиток на клавиатуру макбука или не выполните базовых функций по уходу. Иногда, совсем как люди, Маки устают и переутомляются, и им просто надо немного внимания и заботы.

Если на Мак обрушивается бедствие, чаще всего проблему можно решить самостоятельно. Это если вам просто везёт, и причины и последствия очевидны. Например, если вы обновляете операционную систему, а приложение отказывается правильно работать, логика вам подсказывает, что приложению также понадобится апдейт. Иногда, чтобы смягчить действие катастрофы на Мак, вам придётся сделать несколько ключевых шагов, начиная с самых очевидных, с которыми легче всего справиться, (например, проверить, правильно ли включен ваш компьютер в сеть) до более сложных. В любом случае, держите себя в руках.

How to Survive 17 Worst Mac Disasters: Chaper One

В этой статье представлены 17 тактик, следование которым помогут пережить достаточно распространённые бедствия, которые могут постигнуть ваш Мак, iPhone или iPod, от самых серьёзных до просто раздражающих. Если у вас есть какие-либо сомнения, что делать с проблемой, всегда лучше не заходить на неизвестную территорию, чтобы не сделать всё ещё хуже. В таких случаях лучше просто отнесите машину профессионалу. И не забывайте регулярно делать бэкап важных данных. Если вы не делаете бэкап, даже маленькая проблема может перерасти в огромный кризис. Кстати, пользователи Leopard, у вас уже есть средство для простого и удобного осуществления бэкапа: встроенная в ОС функция Time Machine, так что от вас отговорки не принимаются! Вы можете найти пошаговые инструкции, как создавать резервные копии ваших основных файлов в статье «How to Back Up Your Mac with Time Machine».

Читать дальше →
Total votes 118: ↑75 and ↓43+32
Comments71

Synergy — управление несколькими ПК с одной клавиатуры

Reading time2 min
Views115K
К моему рабочему компьютеру не так давно добавился еще и лаптоп, который постоянно стоит на столе рядом с монитором. Работать за обоими компьютерами нужно одновременно, и мне начало надоедать постоянно перекладывать руки с одной клавиатуры/мыши на другую.

Я подумал: «Как было бы здорово сделать дисплей лаптопа продолжением дисплея настольного ПК, и при этом управлять ими одной и той же клавиатурой и мышью!». Оказалось, выход есть. И называется он Synergy.
Логотип Synergy
Читать дальше →
Total votes 107: ↑106 and ↓1+105
Comments138

Используем Adobe Illustrator для создания макета страницы

Reading time4 min
Views91K
Данное руководство создано для тех, кто уже умеет пользоваться Adobe Illustrator, но пока не знает всех тонкостей работы с ним и хочет познакомиться поближе.

Товарищ CurlyBrace уже сверстал представленный здесь макет, спасибо ему!

Для начала посмотрите на то, что мы будем стараться сделать:



Читать дальше →
Total votes 162: ↑139 and ↓23+116
Comments159

Хорошо ли вы подготовились к использованию Windows 7? Несколько “горячих” клавиш

Reading time3 min
Views3.4K
Сразу хочу извиниться, статья не очень то техническая. Если вы считаете, что уже и так хорошо знаете все горячие клавиши Windows 7, которые упрощают работу с ней, то просто пропустите этот топик.

Случайно на глаза попалась табличка c «горячими» клавишами, связанных с новым тулбаром Windows 7 – узнал для себя много новых и полезных и спешу поделиться ими с вами, предварительно собрав по максимуму полезных сочетаний.

Читать дальше →
Total votes 142: ↑118 and ↓24+94
Comments89

Ускоренное выключение\включение Windows XP

Reading time3 min
Views20K
*Перенесено из песочницы, спасибо за инвайт :-)
Привет!
Я вот честно, искал в поиске подобную тему, но не нашёл. Сегодня я хочу рассказать вам про то, о чём я узнал случайно и даже немного возмутился. Оказывается у Microsoft есть куча полезных утилит которые творят чудеса! Мне даже непонятно почему они не включены стандартно в Windows.
1) Ускоренная выгрузка Windows XP.
Есть такая утилитка на сайте Microsoft: UPHClean (User Profile Hive Cleanup Service)
Microsoft.com/UPHClean
если по каким то причинам не удалось скачать, то можно отсюда:
Filehoster.ru.
Служба UPHClean контролирует компьютер в процессе выгрузки профиля пользователя и закрывает открытые ресурсы. Вот честно, с английским у меня не важно, но, насколько я понял, обычно после выгрузки пользователя, Windows начинает сканироваь реестр и что-то там согласовывать и завершать, а при установленной утилите вся эта работа будет выполняться сразу в реальном времени по мере надобности. Эта утилита себя зарегистрирует как сервис и будет висеть в памяти всегда (от 1 мб до 5 мб. у каждого по разному), и хотя я очень критичен к сервисам которые находятся в автозапуске, эта утилитка меня так поразила что я не смог ей отказать :-) у меня выключается за 5-7 секунд. раньше за 25
2) Ускоренная загрузка Windows XP.
Я понимаю, что этой теме выделенно не мало пространства в интернете, но тут я вам не расскажу как это сделать супер быстро, нажав одну кнопку.
BootVis Tool
Microsoft.com/BootVis
Читать дальше →
Total votes 146: ↑123 and ↓23+100
Comments146

Как определить «Где я?» в приложениях на Windows Mobile

Reading time16 min
Views4.8K
Каким образом реализуются приложения, зависящие от местоположения сегодня? Как правило, на ум сразу приходит использование GPS-устройств, которые способны предоставлять координаты текущего местоположения. Однако, GPS устройства есть далеко не везде и не всегда. Давайте попробуем разобраться как реализовать более богатый способ определения текущего местоположения.
Читать дальше →
Total votes 51: ↑44 and ↓7+37
Comments65

Реалистичное гравитационное линзование на Unity

Reading time4 min
Views28K
image
Эффект гравитационной линзы вызванный скоплением галактик RCS2 032727-132623

Возникла недавно необходимость реализовать на Unity достаточно правдоподобное изображение черной дыры и, соответственно, эффект гравитационного линзирования ею вызываемого. Первой мыслью было найти готовую реализацию и подстроить под себя, однако, поскольку ни одного достаточно хорошего решения так и не нашел (что весьма странно, зная насколько популярны игры на космическую тематику), решил реализовать эффект самостоятельно, а заодно и поделиться результатом с хабросообществом.

Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments12

Оптимизация Linux для desktop и игр

Reading time8 min
Views173K
В этой статье я хочу поделиться почти 10-летним опытом использования Linux на домашнем компьютере. За это время я провел много экспериментов над ядром, испробовал различные конфигурации для разных применений и теперь хочу все это систематизировать в длинный пост с рекомендациями как выжать из linux максимум и добиться отличной производительности, без необходимости покупать мощное железо.

Лично я считаю часть, где я написал про тюнинг ядра все же немного устарела и современное железо уже априори выдает необходимую производительность для нормальной работы, но, как мне удалось заметить недавно, с играми все равно, даже сейчас, есть проблемы, даже на мощном железе.

Хоть я и пообещал, что после прочтения этой статьи, можно будет играть в Metro 2033 на калькуляторе (шутка, такого не будет), все же она начнется с рекомендации купить кое-что из железа, если у вас этого еще нет.
Читать дальше →
Total votes 132: ↑99 and ↓33+66
Comments296

Создание игры на движке Sprite Kit (Часть 1)

Reading time71 min
Views157K
С появлением iOS 7 мир узрел новый игровой движок от Apple — SpriteKit. В свете того, что он появился совсем недавно об этом движке еще мало что написано, конечно в сети можно найти несколько tutorial -ов по нему но в основном все они на Английском языке. И по этому я задалась целью написать подробный Туториал об этом замечательном движке.

Итак, что же такое SpriteKit?


SpriteKit — это 2D движок, оптимизированный для создание игр для устройств от компании Apple. В его основе лежит популярный физический движок Box 2D. Поскольку разработчики создавали его заточенным специально для устройств Apple он существенно выигрывает в скорости у остальных движков.
В SpriteKit всю роль по оптимизации и рисованию графики берет на себя OpenGl, это все происходит на низком уровне и по этому вы можете сосредоточить свои усилия на решении проблем более высокого уровня и создание больших 2D игр. Для создание игр на SpriteKit используется язык Objective-c, но с выходом iOS 8 и нового языка Swift, игры также можно создавать и на нем.
От себя хотела бы добавить, что в некотором роде на Swift писать даже легче, так что если вы только начинаете и думаете какой язык выбрать то советую выбрать Swift.

Ниже, я предоставила видео с демонстрацией игрового процесса SpriteKit, если вам стало интересно то милости прошу.



Подробности
Total votes 39: ↑36 and ↓3+33
Comments15

Шпаргалка по HTTP-библиотекам для С++

Reading time12 min
Views107K
К сожалению, в стандартной библиотеке языка С++ нет никаких средств для работы с протоколом HTTP. Возможно, в будущем появятся, но на данный момент каждый раз при необходимости дёрнуть какой-нибудь REST-сервис, пропарсить веб-страничку, написать простенького бота или краулера приходится задаваться вопросами «А какую же библиотеку взять, так чтобы побыстрее и попроще?». Иногда проект уже использует какой-то фреймворк (а иногда даже несколько) и тогда приходится вспоминать «А как же сделать HTTP-запрос имеющимися средствами?». Чтобы не путаться я решил написать для себя шпаргалку с примерами HTTP-запросов на С++ с применением разных библиотек. А самое удобное место для хранения подобных шпаргалок — Хабр: и сам не потеряешь, и другим может пригодиться.

Будут рассмотрены:
  • WinInet
  • WinHttp
  • Casablanca
  • Qt
  • POCO
  • wxWidgets
  • Boost.Asio
  • libcurl
  • neon
  • .NET (С++/CLI)
  • IXMLHTTPRequest
  • HappyHttp
  • cpp-netlib


Читать дальше →
Total votes 96: ↑89 and ↓7+82
Comments38

Information

Rating
Does not participate
Location
Toronto, Ontario, Канада
Registered
Activity