![]() |
Ответ: Советы по оптимизации
Ребят, ну помогите с трансформацией, не могу заставить вертексы правильно двигаться. Гуглю, не могу найти нормальынй пример.
Решил уже сделать пивот, выравнивать его относительно новых координат, и все равно коряво работает. Вот так: Код:
Function CloudUpdate(cloud.cloud) For cloud.cloud=Each cloud cloud\rotY=cloud\rotY+1 CloudUpdate(cloud.cloud) Next |
Ответ: Советы по оптимизации
У меня есть два треугольника, соединенные в квад. И того 4 вертекса. Мне надо крутить точки вокруг центра квада.
По сути нужно матрицу преобразования поставить в координаты центра квада и повернуть эту матрицу на нужные углы и в нее подставить координаты вертексов. Но не могу я понять как это сделать (( |
Ответ: Советы по оптимизации
Вложений: 1
УРААА!! Получилось! Вот я тугодум, два дня втыкал. Оказывается надо tForm для каждой координаты добавлять.
Мне кажется код нихрена не оптимальный. Ну хотя бы работает ) Код:
Function CloudCreate(x#,y#,z#,scale#=1,rotx#=0,roty#=0,rotz#=0) На качество травы не обращайте внимание, для примера, та же текстура только АльфаРеф накинул) Качаем, комментируем!! |
Ответ: Советы по оптимизации
работает на 60 фпс-ах.
иногда почемуто опускается до 45-50. Похоже, это происходит когда я пытаюсь все поле окинуть взглядом. травку на цпу вырвниваешь и шевелишь, или в шейдере? |
Ответ: Советы по оптимизации
burovalex, я тебе скидывал свой пример где все есть.
HolyDel, думаю на цпу ибо использует TForm. |
Ответ: Советы по оптимизации
Цитата:
Код:
For rep=1 To 10000 Цитата:
|
Ответ: Советы по оптимизации
burovalex, хм. Посмотрел код и понял что куда то делся код с разворотом квадов к камере. :)
|
Ответ: Советы по оптимизации
Цитата:
|
Ответ: Советы по оптимизации
Я вот чтото даже не могу представить как это делать. Получается шейдер накладывается на Весь меш, а в меше много элементов.
У каждого элемента может быть разные скорости перемещения, поворота, жизни, альфы и тд. Это ж не получится все упихать в шейдер |
Ответ: Советы по оптимизации
ну вот для этого и придуман инстансинг.
хотя я не понял, тебе нужно обновлять меш каждый кадр или нет? если не каждый - можно на цпу. если каждый - однозначно в шейдере. |
Ответ: Советы по оптимизации
Ну инстансинг вроде как лучше использовать в сложных моделях. Я пробывал простые объекты в инстансинге, результаты не впечатлили. И инстансинг приводит меня к началу, что большое количество ентити тоже ни к чему хорошему не приводит.
Ну пока что я хочу облака реализовать в один меш, их вроде не обязательно каждый кадр обновлять. Я вообще подумываю о таком варианте. Создать пару тройку мешей на большом расстоянии располагать квады а потом крутить эти меши с разными скоростями. Как такой вариант? |
Ответ: Советы по оптимизации
Цитата:
- какой/как ты юзал инстансинг? - если мы говорим о хардварном инстансинге (sm 3.0), то он лучше работает с простыми объектами (проверено). - с инстансингом у тебя 1 ентити. вся суть его работы в том чтобы за 1 вызов отрисовки рисовать кучу объектов с индивидуальными свойствами. свойства передаются в доп вертекс буфере (в более ранних инстансингах бывало по-другому типа в виде массива констант - но на константы сильное ограничение в DX). - не пробывал, а пробовал. это у тебя не опечатка а каждый раз, раздражает) Цитата:
|
Ответ: Советы по оптимизации
Цитата:
Цитата:
Цитата:
Цитата:
|
Ответ: Советы по оптимизации
Цитата:
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx Цитата:
|
Ответ: Советы по оптимизации
Вложений: 1
Будешь наверное смеяться над скрином, зато сам :rolleyes:
Квады или билборды, не знаю как правильней ) Код:
Const cloudKindCount=5 А потом кручу меш, и всё крутится вокруг центра - игрока :) |
Часовой пояс GMT +4, время: 08:49. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot