Привет! У меня есть генерируемый меш и самописный шейдер, ну как самописный, сделанный в Shader Forge. И при соединении меша и материала с этим шейдером меш не реагирует на свет, вообще ни на какой, ни Directional, ни Point, никакой. Я подумал, что дело в шейдере и повесил его на другие меши, и все работает. Позже я попробовал отключить карту нормалей в шейдере. И генерируемый меш стал реагировать на свет. Но без карты нормалей как-то не очень. Еще я вешал стандартный шейдер на другие меши, и стандартные в том числе. Все работает. Я думаю, что какие-то параметры при генерации меша я не указал, но какие именно я не знаю. Я указывал точки(vertices), треугольники(triangles), нормали(normals), UV(uv). Причем даже обычный сгенерируемый треугольник с моим шейдером не работает со светом.
Сообщение отредактировал kinoooshnik - Среда, 30 Декабря 2015, 16:57
KamiRonin, у меня при первой загрузке генерируется карта высот, создаются упрощенные меши и записываются в файл. А во всех последующих загрузках я упрощенные загружаю из файла, а которые ближе я создаю по карте высот и увеличиваю их детализацю, и растравляю в зависимости от дальности расположения. И даже если я буду использовать LOD, то все равно будут проседания FPS. Именно по этому потоки - единственный выход для меня. beril, я сначала использовал AssetDatabase, но позже узнал, что он работает только в редакторе и по этому мне пришлось заменить файлы .Asset на обычные файлы. martuk, у меня были моменты, когда я возвращался к старому коду и не понимал ничего. Но писать красивый код или хотя бы комментировать я не хочу. Если кому интересно, почему я решил использовать меши, а не стандартный террейн, то почитайте вот это.
beril, Я знаю что нельзя, сейчас код переписываю, что бы он не трогал Unity. А суть кода в том, что он загружает ландшафт с упрощенной сеткой ставит его в определенном радиусе от игрока, а 1/10 от радиуса ставит более детализированую сетку.
using UnityEngine; using System.Collections; using System.IO; using System; using System.Threading;
public class AboutTerrane : MonoBehaviour {
public Transform Palyer; public Var1 LV; public Var Var; public Start1 Start1; public int Distance; private int Distance1; private int Distance2; private Vector3 PalyerPosition; private Vector3 PalyerPosition1; public Transform Parent; public Material Material; public int Size = 1000; public int RS = 500; private string[] text; private int z; private string[] v = new string[0]; private bool z1 = false; private bool[][] T1 = new bool[0][]; private MeshFilter[][] T2 = new MeshFilter[0][]; private int[][] T3 = new int[0][]; private int[][] T4 = new int[0][]; private bool[][] T5 = new bool[0][]; private Mesh[][] T6 = new Mesh[0][]; private int Size2 = 0; private int Size3 = 0; private int Size4 = 0; private bool R = false; private int RS1;
get_sharedMesh can only be called from the main thread. Constructors and field initializers will be executed from the loading thread when loading a scene. Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
Буду пробовать как-то ее исправить.
Добавлено (23 октября 2015, 01:48) --------------------------------------------- beril, я как то пытался разобраться с коуринами, но у меня не получилось. А суть потоков я понял сразу и сейчас я как-нибудь заменю методы unity на свои.
Сообщение отредактировал kinoooshnik - Пятница, 23 Октября 2015, 01:46
Привет! У меня есть функция которая выполняет определенные действия когда игрок меняет свое расположение на 500. При вызове этой функции ФПС проседает на несколько кадров. Это очень заметно. Можно как-то исправить это? Что бы функция выполнялась параллельно игре или переместить нагрузку на другое ядро?
Привет! Мне сильно не нравится стандартный шейдер террайна и я решил его изменить. Для это решил использовать Shader Forge. Создал шейдер, который мне нужен. На вики по Shader Forge прочел некоторые тонкости про шейдеры для террайна, без них он просто не работает (http://acegikmo.com/shaderforge/wiki/index.php?title=Basic_Terrain_Setup). На обычных объектах он смотрится нормально, но на террейне он смотрится не так, как на обычных объектах. Вот сам шейдер в Shader Forge:
Вот то, что получается на кубе:
Но на терайне почему то так:
Я надеюсь здесь есть кто-нибудь, кто может мне помочь. Заранее спасибо!
Привет! Есть ли тут те, кто пользовался системой шейдеров RTP v3.0? Если нет то это очень плохо. А если да, то я бы хотел спросить где можно отключить прорисовку height map? Уж больно сильно она систему нагружает.
1 - скрин при не включенной игре 2 - при включенной У меня вопрос почему на 2 картинке дальние объекты становятся серыми?(Дальность прорисовки стоит большая)
Сообщение отредактировал kinoooshnik - Четверг, 12 Февраля 2015, 20:01
Привет! Я думаю многие знаю о стандартном эффекте размытия, но мне хотелось бы узнать как его реализовать на определенной области экрана?(К примеру только там, где стоит текстовый бокс)
MANMANA, не совсем. Там Если делать все по инструкции, то все работает, но он расставляет деревья с помощью кисти в террайне, а мне хотелось бы узнать как сделать так, что бы дерево было как GameObject и у него листва все равно двигалась.
Pashock_Razor, нет, это не принципиально, просто хотелось бы сделать красивее. А ресурса у меня пока нет потому,что игра из себя мало что представляет, но я могу скинуть ссылку сборку есть хотите.
Сообщение отредактировал kinoooshnik - Понедельник, 05 Января 2015, 17:32