Previous Entry Share Next Entry
2016-01

40 способов получить черный экран, работая с 3д графикой

Основано на реальных событиях :)

  1. Монитор ушел в режим энергосбережения
  2. У вас два видеовыхода, и вы не угадали, подключая монитор
  3. Пока вы отвлеклись, запустился скринсейвер, но ваша программа захватила фокус ввода, и теперь вы не можете ничего сделать
  4. Вы забыли про переключение буферов. Все рисуется правильно, но не показывается на экране
  5. У вас проблема с памятью – вы рисуете не в ту область, которая отображается на мониторе
  6. Сцена слишком сложная, и CPU или GPU завис перед тем, как первый кадр успел отрисоваться до конца
  7. Ближняя плоскость отсечения дальше дальней
  8. При обходе BSP-дерева каждый раз выбрасываются обьекты не по ту сторону плоскости; весь мир скрывается за углом
  9. Вы забыли задать своим обьектам bounding boxes, и все они отбрасываются, как слишком маленькие
  10. У вас баг в коде работы с матрицами. Весь мир схлопнулся в (0,0,0)
  11. У вас баг в коде работы с кватернионами. Все вращающиеся обьекты схлопнулись в точки.
  12. Вы неправильно отбрасываете задние грани обьектов. Все грани успешно отброшены.
  13. Угол обзора слишком большой, и весь мир схлопнулся в точку в центре экрана
  14. Угол обзора слишком маленький. Единственный тексель, который видно в камеру, некстати оказался черным.
  15. Вы перепутали координаты центра экрана, и вся сцена рендерится мимо (после чего отбрасывается)
  16. Вы используете палитрованные текстуры, но забыли установить палитру – все цвета теперь черные
  17. Проблема с масштабом: сцена, мягко говоря, большая. Вы рассматриваете единственный тексель какого-то треугольника.
  18. Проблема с масштабом: сцена маловата. Весь мир занимает где-то полпикселя в центре экрана (Или не в центре)
  19. Камера за сценой, и смотрит не в ту сторону. Обернитесь назад, вверх, вниз, и т.д.
  20. Вы сделали освещение, но забыли добавить лампочек. Мир покрыт мраком.
  21. Вы забыли установить текстуры. Вся сцена рендерится пустой текстурой (белой, черной, прозрачной – как повезет)
  22. Вы забыли настроить текстурные координаты. Вся сцена окрашена в цвет пикселя (0,0) соответствующих текстур
  23. Вы пытаетесь делать целочисленное умножение чисел, меньших единицы. В результате получаются нули.
  24. Вы забыли сдвинуть обьекты в мировых координатах и относительно камеры. Теперь вы смотрите на все видимые обьекты сцены сразу, изнутри, и отсечка задних граней успешно добивается того, что ничего не видно.
  25. Вы не снимаете матрицы со стека трансформаций. Через пару кадров стек переполнился.
  26. В алгоритмы проверки столкновений вкралась ошибка. Обьект, к которому прикреплена камера, провалился сквозь пол и с огромной скоростью летит в пустоту, в то время как мир скрывается (за дальней гранью отсечения) далеко вверху.
  27. В вашем вертексном шейдере вкралась ошибка, и вся сцена находится за камерой
  28. Ваш пиксельный шейдер не скомпилировался, и дефолтный шейдер окрасил всё черным.
  29. Вы забыли очистить Z-буфер, и все ваши пиксели отбрасываются.
  30. Туман в сцене гуще, чем в плохой пародии на Шерлока Холмса
  31. Вы напортачили с альфа-каналом, и весь мир полностью прозрачен
  32. Вы смотрите на черную стену.
  33. Игровая логика решила, что самое время для затухания экрана (например, при смене уровней)
  34. С вашими данными все в порядке, но какой-то левый указатель портит что-то одно. Или всё сразу.
  35. Поверх сцены изображается меню. Или интерфейс. К сожалению, из-за ошибки они вышли немного великоватыми, и угол буквы А накрывает весь экран чернотой.
  36. В вашем radiosity-симуляторе слишком мало фотонов
  37. Ваш шейдер обьемных обьектов слишком непрозрачен.
  38. Ваши BRDF (функции отражения света поверхностями) недостаточно отражающие
  39. Что-то случилось со счетчиком времени, и все обьекты уже мертвы. Или еще не создались.
  40. Где-то в коде есть пометка FIXME, которую действительно пора бы поправить…

(Перевод поста http://dmalcolm.livejournal.com/2433.html )


  • 1
trippin_witch May 31st, 2010
офигенно

udpn May 31st, 2010
Ага, я тоже успел это покушать. Бесит, жутко бесит.

lionet May 31st, 2010
#20 был моим первым.

neteraser_brdr May 31st, 2010
гениально!!!

sashman May 31st, 2010
заметен опыт набивания шишек

ti_ua May 31st, 2010
Отличный такой чеклист :)

3d6 May 31st, 2010
#40 - это наше все! :)))

an_taro May 31st, 2010
исчерпывающе (^-^)

wizzard0 May 31st, 2010
Если бы)

aka_rider May 31st, 2010
Отличный список!

У меня было такое:
- Ваш фуллскрин квад без текстуры (DDraw surface) наконец-то заработал.

wizzard0 May 31st, 2010
Тоже хорошо)

Меня, правда, мимо директдрав пронесло, тьфу-тьфу-тьфу)

Original here: http://dmalcolm.livejournal.com/2433.html

dmalcolm May 31st, 2010
I can attest that it is a true story. This a translated version of my blog post from a year ago: http://dmalcolm.livejournal.com/2433.html
Thanks for translating it, but please cite your sources!

Re: Original here: http://dmalcolm.livejournal.com/2433.html

wizzard0 May 31st, 2010
Fixed; sorry about that :)

xproger June 1st, 2010
Испытал на себе как минимум половину всего этого )

  • 1
?

Log in

No account? Create an account