Влияет. Одно дело когда ты рисуешь геометрию за 8-14 DIPов и передаешь туда 8-14 transform матриц, и совсем другое, когда ты пытаешься рисовать 1840 отдельных кубов, включаешь и готовишь инстансинг, в процессе передавая из оперативной в видеопамять 1840 матриц. Это Hardware Instancing и даже он медленее, чем просто "голую" геометрию рисовать.
нужно все эти матрицы в текстуру грузить, тогда они работают намного быстрее, потому-что видео карте работать с текстурами нанмого проще, как раз это и есть псевдоинстансинг, а просто влоб грузить 1840 матриц, то там конечно может быть спад производительности, я раньше делал демку, где как раз таки несколько сотен тысяч одинаковых объектов рисовлись именно этим методом - а именно трава, просто 2 плоскости скрещенные и на них текстура наложенна (вообще разные пробовал, деле еще и треугольник и звездочки), при этом еще и анимация была на траве, и все работало с fpc 180-200, и при этом все еще вся сцена была загружена таррайном и так же сотни деревьев и разных кустиков. Так что я все таки за инстансинг, просто нужно правильно им пользоваться, ну и конечно я это не юнити делал, но я думаю там та же технология, единственное юнити может навешать свои обработчики для объектов, которые смогут эту самую оптимизацию свести на нет.
не требуется. размер "куба" известен заранее. координаты его - три числа. не нужно ВООБЩЕ учитывать треугольники и плоскости. рассчитывается только виртуальное размещение куба в целом по лини луча!!
а ну да точно ) но разбиение пространства все равно требуется, хотя в Unity наверное это и так делается.
математика быстрее рейкаста (в большинстве случаев), в твоем примере имеешь дело с пятью цифрами и простыми формулами для расчета. она будет в разы быстрее работать чем 500k лучей на каждом тике разбрасывать. имхо.
а рейкаст - это тебе не матиматиека чтоли? ну а вообще да, нужно еще уметь правильно применять его, вот сам смотри, у тебя очень много объектов, если не запилить поиск по бинарному дереву (KD-Tree или мое любимое BVH деревья), то у тебя фпс скатится еще ниже чем был, потому-что для каждого треугольника, у каждого объекта, придется провести тест на пересечения луча с треугольником.
Это я так понял чанки? Это невозможно сделать, т.к. мир блоки иногда будут получать rigibody + force.
я не в курсе что-такое чанки, я не прогарммирую в юнити, я говорю как это делается в общем, а делается это через псевдо инстансинг или аппаратный инстансинг, со вторым не работал, а вот с псевдо инстансингом, можно физику прикрутить, нужно уметь просто. Советую погуглить на тему инстансинга.
подобное делается при помощи инстансинга, так же рисуется много травы, вообще нужно разбить весь мир на блоки для начала, и отрисовывать несколько блоков одним вызовом, большое падение фпс так же из-за того, что одновременно расчитывается вся физика для каждого объекта, оптимизации физики - это уже другая тема
Stark, с диска нет возможности установить, только через флешку могу
ну вот нужно было в самом начале написать что через флешку ставить пытаешься, у меня такая же фигня была, просто подожди часа 2, и появится )) просто у флешки очень маленькая скорость, вот и тупит.
ну а что соблственно не так, в смысле что не работает?? попробуй заккоментировать эту строку: glfwOpenWindowHint(GLFW_FSAA_SAMPLES, 4); для этого нужно использовать OpenGL 3 и выше
Yashko3, если у тебя больше 2х жестких дисков на компе, попробуй сделать бут с другого диска (у меня F12 выззывает boot menu при старте системы) проверь все диски, мог просто установить загрузчик не туда.
Я вот 3 месяц не бреюсь. Щетины нет вообще, только небольшие усы и бородка. Очень медленно все растет cool Хоть на бритвах экономлю, купил 1 на год и хватает biggrin
я побреюсь, и у меня через 3 дня вырастает уже борода, снова бриться нужно )) а вообще пусть лучше навсегда удалит волосы а не бреется, волсы потом жесткие станут и будет как мужик с щетиной )) лучше уж эпиляцию пусть делает ))
да я привык png пользоваться, удобно и особо производительности не нужно пока ) один раз только пробовал dxt исопльзовать, когда нужно было освещенность, которая хранилась в 3D текстуре, сжать до нормальных размеров, вроде бы все и получилось, но качество не ахти, поэтому как-то передумал ))
Цитата (Archido)
Не, это же не DX'вая фича. Это все S3_Texture_Compression, для обоих API оно будет одинаково (железо то одно). Поэтому в OpenGL надо будет только научиться читать .dds (не обязательно именно его, но с ним проще) фактически просто разобрать заголовок, а сами данные изображения заливаются напрямую в память без всякого перекодирования, как и в случае с DX'ом.
а все, дошло, что-то туплю ))
Сообщение отредактировал Xakep - Понедельник, 30 Сентября 2013, 14:18
экономя место в видеопамяти и разгружая шину данных. Как пример - DXT (S3TC), DXT1 хранит полбайта на пиксель и ему не нужно будет делать "декодирование" при загрузке какого-нибудь "мегаформата" и тратить на это время.
блин, я только сейчас об этом узнал )) надо тоже переходить на DXT, сейчас в PNG только работаю )) хотя это наверное только в DirectX такое приемущество, для OpenGL все равно нужен отдельно загрузчик, который делает тоже самое что и загрузчики для jpg и png. В OpenGL есть еще формат hdr, аналог DXT.
Хорошо. Озвучьте, пожалуйста, сколько минимум будет весить картинка монохром 32x32 в самом “сжимающем формате”?
зависит от картинки, пустая картинка заполненная белым цветом весит 174 байт. Если что-то рисовать будет болше. Еще есть формат DXT, он наверняка будет лучше сжимать. И даже допустим, что ты сделал формат, который обгонят по сжатости png, смысл в этом какой? сейчас компбютеры оснащены достаточным количеством памяти. Хотя конечно бывают такие задачи, где уже память критична для текстур, но обычно это 3D текстуры и их должно быть много, к примеру расчет освещенности для уровня, чтобы получить достаточно хороший результат, нужно на всю игру на одно освещение примерно 7 ГБ (это примерно, расчет брал из того, что в игре будет много уровней).
Сообщение отредактировал Xakep - Воскресенье, 29 Сентября 2013, 12:35
пишу свой формат – аналог png или jpeg, который разрабатывается индивидуально для проекта, и позволяет уменьшить размер файлов и ускорить их загрузку.
ой да ладно, вряд ли ты напишешь что-то лучше png или jpeg, я бы еще понял, если бы свой формат 3D моделей делал, с ним тупо удобнее работать было бы, а вот делать свой формат картинок, это уже бред.
Цитата (noname)
а вот урока как полностью сделать хотя бы простейший, но законченный платформер на ЯП, действительно не хватает. и, да- это будет не один урок, а серия уроков.
о вот это хороший совет, может я напишу серию уроков на С++ :))