![]() |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
Алгоритм пиксельшейдера прост: srs = tex2d(srs_img,pos) mask = tex2d(mask_img,pos-vec2d(1-xoffset,0)) srs.a = mask.r outcolor = srs.a pos- координата пикселя xoffset - смещение маски по x 0-1 outcolor - расчитаный пиксель Просто ставит в альфа канал картинки значение красного канала маски из положения пикселя+смешение, получается альфамаска) Так как не помню наизусть синтаксиса GLSL,то писал как помню. Такой шейдер пойдет? В нем маска едет (вроде правильно, правил на мобиле): PHP код:
|
Ответ: Вопросы от новичка
Вопрос...
В приложении для андроида надо в ассетах запомнить массив рисунков (jpg) и потом в ходе игры их динамически подгружать как 2Д текстуры... Как это можно сделать вообще и скрипты (какая ф-ия)? Пробовал через Resource.Load.., но при этом сильно растет объем АПК файла. Надо как то по другому... может как то с WWW....? PS. В игре задействован 2dTool... |
Ответ: Вопросы от новичка
В проекте можно создать папку StreamingAssets
http://docs.unity3d.com/Manual/StreamingAssets.html положить туда jpg файлы и в случае андроида только по WWW оттуда считать используя WWW.texture к примеру. |
Ответ: Вопросы от новичка
Когда создаю новую папку в Scripts , то у меня автоматически появляется новая Assembly-CSharp-<Name> в проекте. Как можно этого избежать? (у меня кстати есть в Scripts папка, которая не помню как создавалась, но для нее нету отдельной "сборки", а вот новые нормально добавить не могу). Используется MonoDevelop.
Не знаете как со студией подружить юнити? Находил какие то статьи на англ, но ниче не понял. |
Ответ: Вопросы от новичка
Сборки создаются в том случае, если в проекте есть особые папки (Plugins, Plugins/Editor, Editor, Standard Assets и т.д.). Это связано с тем, что эти части компилируются в разное время. Так же для js свои сборки.
Студия (не фри версия) работает нормально. |
Ответ: Вопросы от новичка
Цитата:
Цитата:
|
Ответ: Вопросы от новичка
никто еще не тестировал юнити 5?
я так надеюсь, что в нем можно будет получить данные из render texture и можно будет создавать меш со своим набором и типом данных. первое нужно, чтобы посчитать шум перлина на карточке. а второе чтобы оптимизировать потребление памяти. без этого дальнейшее развитие моего проекта бессмысленно( Еще бы не помешало создавать меш прямо на gpu. сейчас приходится доставать данные из ComputeBuffer, а затем отправлять их в меш. Что накладно для, например, marching cubes. |
Ответ: Вопросы от новичка
C рендертекстуры же можно пиксели считать. Ставишь рендертекстуру RenderTexture.active = rt; и читаешь пиксели в обычную текстуру Texture2D.ReadPixels.
ИМХО скорее всего своих структур меша не будет. |
Ответ: Вопросы от новичка
Можно то можно, но тормозит это сильно. да и у обычной текстуры форматов меньше.
www.gamedev.ru/code/forum/?id=176270 вообщем получить из нее данные - действительно проблема. и в этом не юнити виновата, а ограничение low level api, видно из-за синхронизации так. хотя на том форуме приводятся более производительные методы. так что юнити все же могла бы быть лучше. в dx11 создали специальные текстуры для расчетов RWTexture2D/3D. но юнити имеет лишь compute buffer. а в dx9 наверно и вообще нет нормального способа это сделать. если кастомного меша не будет, то можно попробовать Graphics.DrawProceduralIndirect. теоретически им можно отрендерить любые данные хранящиеся в compute buffer. но dx9 отпадает. хотя не ясно как эта функция работает и какой ее аналог в dx11. и примеров по ней не видел. |
Ответ: Вопросы от новичка
RenderTecture в видеопамяти, чтобы получить ее в обычную память, память надо скопировать, это естественно медленно. Я других способов не знаю как это быстрее сделать.
Я вообще ничего еще из новых возможностей типа compute buffer не использовал ничего. |
Ответ: Вопросы от новичка
да копирование памяти не столь медленное. texture.GetPixels вполне может работать в рантайме. а Texture2D.ReadPixels понижала фпс до 1-5.
к сожалению не знаю есть ли в dx9 другие способы получить расчеты. в dx11 сделали RWTexture2D , но юнити почему-то их обошел стороной и подовольствовался лишь ComputeBuffer'ом. |
Ответ: Вопросы от новичка
Странный баг - моно ругается на Camera.main, говорит `Camera' does not contain a definition for `main' и т.д. про все свойства камеры...! Что это? )))
|
Ответ: Вопросы от новичка
camera с маленькой буквы. main это статическое свойство класса, так что надо Camera.main
|
Ответ: Вопросы от новичка
pax, извини за неточность там все правильно - Camera.main , я поправил предыдущий пост, тут что то другое...
|
Часовой пояс GMT +4, время: 23:48. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot