Увеличение временных регистров?

Шейдеры и все-все-все.

Увеличение временных регистров?

Сообщение antonio 17 дек 2010, 20:42

При использовании shader model 3.0 можно использовать 32 временных регистра,
но есть потребность и возможность увеличить пределы используя #pragma profileoption.
В официальной справке приведен пример для текстур
#pragma profileoption MaxTexIndirections=256
а как это выглядит для регистров?
Аватара пользователя
antonio
UNIт
 
Сообщения: 132
Зарегистрирован: 03 ноя 2009, 15:42
Откуда: Смоленск

Re: Увеличение временных регистров?

Сообщение gnoblin 17 дек 2010, 20:53

Я бы это не использовал :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Увеличение временных регистров?

Сообщение antonio 17 дек 2010, 20:59

Я бы тоже не использовал. Есть вариант обойти?
Производительность в данном случае не принципиально.
Занимаюсь копипастом фракталов. :)
Синтаксис:
Используется glsl
// http://www.iquilezles.org/apps/shadertoy/ Shader Toy
Shader "Mandelbrot" {
        Properties {
                _TimeSpeed ("Time Speed", Float) = 1
                _X ("Scale X", Float) = 0.5
                _Y ("Scale Y", Float) = 0.5
        }
        SubShader {
                Tags { "RenderType"="Opaque" }
                LOD 200

                CGPROGRAM
                #pragma surface surf Lambert vertex:vert
                #pragma target 3.0

                float _X;
                float _Y;
                   
                float _TimeSpeed;
               
                sampler2D tex0;
                sampler2D tex1;

                struct Input {
                        float2 uv_MainTex;
                        float t;
                };

                void vert (inout appdata_full v, out Input o) {
                        o.t=_Time.y*_TimeSpeed;
                }
               
                void surf (Input IN, inout SurfaceOutput o) {

                        float2 p = -1.0 + 2.0 * IN.uv_MainTex.xy / half2(_X,_Y);
                        p.x *= _X/_Y;

                        float zoo = .62+.38*sin(.1*IN.t);
                        float coa = cos( 0.1*(1.0-zoo)*IN.t );
                        float sia = sin( 0.1*(1.0-zoo)*IN.t );
                        zoo = pow( zoo,8.0);
                        float2 xy = float2( p.x*coa-p.y*sia, p.x*sia+p.y*coa);
                        float2 cc = float2(-.745,.186) + xy*zoo;

                        float2 z  = float2(0.0);
                        float2 z2 = z*z;
                        float m2;
                        float co = 0.0;
                        for( int i=0; i<24; i++ ) //Хотелось бы 256
                        {
                                z = cc + float2( z.x*z.x - z.y*z.y, 2.0*z.x*z.y );
                                m2 = dot(z,z);
                                if( m2>1024.0 ) break;
                                co += 1.0;
                                }
                        co = co + 1.0 - log2(.5*log2(m2));

                        co = sqrt(co/256.0);
                        half4 FragColor = half4( .5+.5*cos(6.2831*co+0.0),
                                                                 .5+.5*cos(6.2831*co+0.4),
                                                                 .5+.5*cos(6.2831*co+0.7),
                                                                 1.0 );

                        o.Albedo = FragColor.rgb;
                        o.Alpha = FragColor.a;
                }
                ENDCG
        }
        FallBack "Diffuse"
}
 
Аватара пользователя
antonio
UNIт
 
Сообщения: 132
Зарегистрирован: 03 ноя 2009, 15:42
Откуда: Смоленск

Re: Увеличение временных регистров?

Сообщение gnoblin 17 дек 2010, 22:36

Я что-то фрактальное с shadertoy вроде копипастил, наверное забыл запостить.

С этим параметром может перестать работать на многих видеокартах :-w
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Увеличение временных регистров?

Сообщение antonio 17 дек 2010, 23:05

Было дело копипастил ) Но не все
Это для себя. Меня в конечном итоге интересует Mandelbulb 3D fractal
с WebGL браузером у меня показывает (хотя конечно тормоза))
Mandelbulb.jpg
У вас нет доступа для просмотра вложений в этом сообщении.
Аватара пользователя
antonio
UNIт
 
Сообщения: 132
Зарегистрирован: 03 ноя 2009, 15:42
Откуда: Смоленск

Re: Увеличение временных регистров?

Сообщение gnoblin 17 дек 2010, 23:30

У меня браузер не показывает WebGL :(
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Увеличение временных регистров?

Сообщение antonio 18 дек 2010, 00:54

Я себе для этого развлечения временно поставил Firefox4 )
Аватара пользователя
antonio
UNIт
 
Сообщения: 132
Зарегистрирован: 03 ноя 2009, 15:42
Откуда: Смоленск


Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1