|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
08.08.2014, 18:22
|
#1966
|
Бывалый
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений (для 245 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от RegIon
Я бы написал шейдер для квада, в котором бар рисуется картинка с маской и программно менял -длину маски, или смешение setOffset методом
|
Тяжело написать такой шейдер самому? Еще не писал шейдеры в юнити...
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
|
(Offline)
|
|
19.08.2014, 17:42
|
#1967
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Morganolla
Тяжело написать такой шейдер самому? Еще не писал шейдеры в юнити...
|
Нет, берешь готовый шейдер, например без z теста и освещения, и редактируешь GLSL код в нем. Примеры шейдеров можно выгуглить.
Алгоритм пиксельшейдера прост:
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,то писал как помню.
Такой шейдер пойдет? В нем маска едет (вроде правильно, правил на мобиле):
Shader "Custom/NewShader" { Properties { _MainTex ("Base (RGB A-mask)", 2D) = "white" {} _SecondTex ("Base (RGB)", 2D) = "white" {} _Offset ("Offset", Range(0,1))=0.5 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Lambert
sampler2D _MainTex; sampler2D _SecondTex; fixed _Offset;
struct Input { float2 uv_MainTex; };
void surf (Input IN, inout SurfaceOutput o) { fixed4 c = tex2D (_MainTex, IN.uv_MainTex); fixed4 c1 = tex2D (_SecondTex, IN.uv_MainTex-float2(1-_Offset,0));
o.Albedo = c.rgb; o.Alpha = c1.r; } ENDCG } FallBack "Diffuse" }
Последний раз редактировалось RegIon, 19.08.2014 в 18:05.
Причина: добавил шейдер
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.09.2014, 16:54
|
#1968
|
Бывалый
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений (для 245 пользователей)
|
Ответ: Вопросы от новичка
Вопрос...
В приложении для андроида надо в ассетах запомнить массив рисунков (jpg) и потом в ходе игры их динамически подгружать как 2Д текстуры... Как это можно сделать вообще и скрипты (какая ф-ия)?
Пробовал через Resource.Load.., но при этом сильно растет объем АПК файла. Надо как то по другому... может как то с WWW....?
PS. В игре задействован 2dTool...
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
|
(Offline)
|
|
03.09.2014, 18:03
|
#1969
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
В проекте можно создать папку StreamingAssets
http://docs.unity3d.com/Manual/StreamingAssets.html
положить туда jpg файлы и в случае андроида только по WWW оттуда считать используя WWW.texture к примеру.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.09.2014, 23:52
|
#1970
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Вопросы от новичка
Когда создаю новую папку в Scripts , то у меня автоматически появляется новая Assembly-CSharp-<Name> в проекте. Как можно этого избежать? (у меня кстати есть в Scripts папка, которая не помню как создавалась, но для нее нету отдельной "сборки", а вот новые нормально добавить не могу). Используется MonoDevelop.
Не знаете как со студией подружить юнити? Находил какие то статьи на англ, но ниче не понял.
Последний раз редактировалось radiobutton, 18.09.2014 в 04:19.
|
(Offline)
|
|
18.09.2014, 10:59
|
#1971
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сборки создаются в том случае, если в проекте есть особые папки (Plugins, Plugins/Editor, Editor, Standard Assets и т.д.). Это связано с тем, что эти части компилируются в разное время. Так же для js свои сборки.
Студия (не фри версия) работает нормально.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.09.2014, 22:31
|
#1972
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pax
Сборки создаются в том случае, если в проекте есть особые папки (Plugins, Plugins/Editor, Editor, Standard Assets и т.д.). Это связано с тем, что эти части компилируются в разное время. Так же для js свои сборки.
|
Точно у меня Editor как раз называется. +) Спасибо.
Сообщение от pax
Студия (не фри версия) работает нормально.
|
Действительно. =)
|
(Offline)
|
|
04.10.2014, 22:53
|
#1973
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
никто еще не тестировал юнити 5?
я так надеюсь, что в нем можно будет получить данные из render texture и можно будет создавать меш со своим набором и типом данных.
первое нужно, чтобы посчитать шум перлина на карточке. а второе чтобы оптимизировать потребление памяти. без этого дальнейшее развитие моего проекта бессмысленно(
Еще бы не помешало создавать меш прямо на gpu. сейчас приходится доставать данные из ComputeBuffer, а затем отправлять их в меш. Что накладно для, например, marching cubes.
|
(Offline)
|
|
05.10.2014, 18:19
|
#1974
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
C рендертекстуры же можно пиксели считать. Ставишь рендертекстуру RenderTexture.active = rt; и читаешь пиксели в обычную текстуру Texture2D.ReadPixels.
ИМХО скорее всего своих структур меша не будет.
|
(Offline)
|
|
05.10.2014, 19:43
|
#1975
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Можно то можно, но тормозит это сильно. да и у обычной текстуры форматов меньше.
www.gamedev.ru/code/forum/?id=176270 вообщем получить из нее данные - действительно проблема. и в этом не юнити виновата, а ограничение low level api, видно из-за синхронизации так. хотя на том форуме приводятся более производительные методы. так что юнити все же могла бы быть лучше.
в dx11 создали специальные текстуры для расчетов RWTexture2D/3D. но юнити имеет лишь compute buffer. а в dx9 наверно и вообще нет нормального способа это сделать.
если кастомного меша не будет, то можно попробовать Graphics.DrawProceduralIndirect. теоретически им можно отрендерить любые данные хранящиеся в compute buffer. но dx9 отпадает. хотя не ясно как эта функция работает и какой ее аналог в dx11. и примеров по ней не видел.
|
(Offline)
|
|
05.10.2014, 20:03
|
#1976
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
RenderTecture в видеопамяти, чтобы получить ее в обычную память, память надо скопировать, это естественно медленно. Я других способов не знаю как это быстрее сделать.
Я вообще ничего еще из новых возможностей типа compute buffer не использовал ничего.
|
(Offline)
|
|
05.10.2014, 21:02
|
#1977
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
да копирование памяти не столь медленное. texture.GetPixels вполне может работать в рантайме. а Texture2D.ReadPixels понижала фпс до 1-5.
к сожалению не знаю есть ли в dx9 другие способы получить расчеты. в dx11 сделали RWTexture2D , но юнити почему-то их обошел стороной и подовольствовался лишь ComputeBuffer'ом.
|
(Offline)
|
|
06.10.2014, 18:33
|
#1978
|
Бывалый
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений (для 245 пользователей)
|
Ответ: Вопросы от новичка
Странный баг - моно ругается на Camera.main, говорит `Camera' does not contain a definition for `main' и т.д. про все свойства камеры...! Что это? )))
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
Последний раз редактировалось Morganolla, 06.10.2014 в 21:09.
|
(Offline)
|
|
06.10.2014, 20:11
|
#1979
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
camera с маленькой буквы. main это статическое свойство класса, так что надо Camera.main
|
(Offline)
|
|
06.10.2014, 21:09
|
#1980
|
Бывалый
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений (для 245 пользователей)
|
Ответ: Вопросы от новичка
pax, извини за неточность там все правильно - Camera.main , я поправил предыдущий пост, тут что то другое...
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:03.
|