Итак, у меня есть шейдер, который создает ландшафт из фрагментов, шейдер был создан с использованием графа шейдера, теперь мне нужно создать экземпляры некоторых объектов на ландшафте, моя общая идея заключалась в том, чтобы взять случайную вершину фрагмента, получить его глобальные координаты .
Затем я понял, что шейдер смещает вершины на графическом процессоре, но создание экземпляров выполняется на стороне процессора. Я подумал, что могу использовать обратное чтение графического процессора, но не совсем понял, как это использовать, действительно ли это возможно сделать с помощью графа шейдера?
Я также думал просто перенести логику смещения из шейдера в скрипт cs, но мне не удалось сделать ее мозаичной.
Итак, если идея каким-то образом читать данные с графического процессора кажется плохой, было бы здорово найти какие-нибудь решения по мозаичному смещению шума.
Вот что я попробовал для перемещения через файл cs. Каждый объект, к которому был прикреплен этот скрипт, имел одинаковое смещение, а не мозаику.
for (int i = 0; i < originalVertices.Length; i++)
{
Vector3 vertexWorldPos = transform.TransformPoint(transform.position) + originalVertices;
displacedVertices = vertexWorldPos;
displacedVertices.y = Mathf.PerlinNoise(vertexWorldPos.x * noiseScale, vertexWorldPos.z + noiseScale) * Height;
Debug.Log(displacedVertices);
}
mesh.vertices = displacedVertices;
mesh.RecalculateNormals(); // Recalculate normals to ensure lighting is correct
Подробнее здесь: https://stackoverflow.com/questions/782 ... ader-graph
Чтение положения вершин, смещенных шейдером (график шейдера) ⇐ C#
Место общения программистов C#
-
Anonymous
1712658119
Anonymous
Итак, у меня есть шейдер, который создает ландшафт из фрагментов, шейдер был создан с использованием графа шейдера, теперь мне нужно создать экземпляры некоторых объектов на ландшафте, моя общая идея заключалась в том, чтобы взять случайную вершину фрагмента, получить его глобальные координаты .
Затем я понял, что шейдер смещает вершины на графическом процессоре, но создание экземпляров выполняется на стороне процессора. Я подумал, что могу использовать обратное чтение графического процессора, но не совсем понял, как это использовать, действительно ли это возможно сделать с помощью графа шейдера?
Я также думал просто перенести логику смещения из шейдера в скрипт cs, но мне не удалось сделать ее мозаичной.
Итак, если идея каким-то образом читать данные с графического процессора кажется плохой, было бы здорово найти какие-нибудь решения по мозаичному смещению шума.
Вот что я попробовал для перемещения через файл cs. Каждый объект, к которому был прикреплен этот скрипт, имел одинаковое смещение, а не мозаику.
for (int i = 0; i < originalVertices.Length; i++)
{
Vector3 vertexWorldPos = transform.TransformPoint(transform.position) + originalVertices[i];
displacedVertices[i] = vertexWorldPos;
displacedVertices[i].y = Mathf.PerlinNoise(vertexWorldPos.x * noiseScale, vertexWorldPos.z + noiseScale) * Height;
Debug.Log(displacedVertices[i]);
}
mesh.vertices = displacedVertices;
mesh.RecalculateNormals(); // Recalculate normals to ensure lighting is correct
Подробнее здесь: [url]https://stackoverflow.com/questions/78297753/read-position-of-vertices-that-were-displaced-by-shader-shader-graph[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия