The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Вышел новый кроссплатформенный тест производительности видео..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Доступны два режима работы форума: "Раскрыть нити" и "Свернуть нити".
. "Вышел новый кроссплатформенный тест производительности видео..." +/
Сообщение от pavlinux (ok), 15-Ноя-12, 14:11 
> Исходники где?


#version 330
precision highp float;
in vec4 Normal;
smooth in vec4 lightDir0;
smooth in vec4 lightDir1;
smooth in vec4 eyeVec;
uniform vec4 LightDiffuse1 = vec4(0.9, 0.4, 0.2, 1.0);
uniform vec4 LightDiffuse2 = vec4(0.1, 0.7, 0.6, 1.0);
uniform vec4 mat_specular = vec4(0.0, 0.0, 0.0, 1.0);
out vec4 Out_Color;
void main()
        vec4 light0_ambient = vec4(0.1, 0.05, 0.05, 1.0);
        vec4 light0_specular = vec4(0.9, 0.9, 0.9, 1.0);
        vec4 light1_ambient = vec4(0.05, 0.05, 0.05, 1.0);
        vec4 light1_specular = vec4(0.9, 0.9, 0.9, 1.0);
        vec4 matAmbient = vec4(0.25, 0.25, 0.25, 1.0);
        vec4 matDiffuse = vec4(0.8, 0.8, 0.8, 1.0);
float matShininess = mat_specular.a;
        vec3 final_color = vec3(0.0, 0.0, 0.0);
        float distSqr = dot(lightDir0, lightDir0);
float invRadius = 0.025;
        float att = clamp(1.0 - invRadius * sqrt(distSqr), 0.0, 1.0);
        final_color += (light0_ambient.rgb * matAmbient.rgb) * att;
        vec3 N = normalize(Normal.xyz);
        vec3 L = normalize(lightDir0.xyz);
        float lambertTerm = dot(N,L);
if (lambertTerm > 0.0)
         final_color += (LightDiffuse1.rgb * matDiffuse.rgb) * lambertTerm * att;      
  vec3 E = normalize(eyeVec.xyz);
  vec3 R = reflect(-L, N);
  float specular = pow(max(dot(R, E), 0.0), 60.0);
  final_color += light0_specular.xyz * vec3(0.8, 0.8, 0.9) * specular;  
        att = 1.0;
        L = normalize(lightDir1.xyz);
        lambertTerm = dot(N,L);
if (lambertTerm > 0.0)
         final_color += (LightDiffuse2.rgb * matDiffuse.rgb) * lambertTerm * att;      
  vec3 E = normalize(eyeVec.xyz);
  vec3 R = reflect(-L, N);
  float specular = pow(max(dot(R, E), 0.0), 60.0);
  final_color += light1_specular.xyz * vec3(0.8, 0.8, 0.9) * specular;  
Out_Color.rgb = final_color;
Out_Color.a = 1.0;

precision highp float;
in vec4 Vertex_UV;
out vec4 Out_Color;
uniform vec2 resolution;
uniform float time;
float k_PI = 3.141592654;
float k_MoveSpeed = 0.5;
float k_BlobSize = 0.5;
float k_OrbitRadius = 0.5;
...

vec2 GetRandom2( in vec2 vInput )
  vec2 temp1 = vInput * vec2(17.1232, 33.32432);
  vec2 temp2 = vInput * vec2(34.32432, 12.9742);
  vec2 temp3 = vec2(sin(temp1.x) + sin(temp2.y), sin(temp1.y) + sin(temp2.x)) * 121.1231;
  return fract(temp3);  
vec2 GetOffset2( in vec2 vInput )
{ return vec2(sin(vInput.x * k_PI * 2.0), cos(vInput.y * k_PI * 2.0)); }

float BlobTexture( in vec2 vPos )
  float fLen = length(vPos) / k_BlobSize;
  return max(1.0 - fLen, 0.0);

float GetBlobValue( in vec2 vPosition, in vec2 vTileOffset )
  vec2 vTilePos = floor(vPosition - vTileOffset);
   vec2 vRandom = GetRandom2(vTilePos);
   vec2 vTime2d = vec2(time, time * 0.92312) * k_MoveSpeed;  
  vec2 vBlobPos = GetOffset2(vRandom + vTime2d) * k_OrbitRadius;
  vec2 vSubTilePos = fract(vPosition) + vTileOffset;
   return BlobTexture(vSubTilePos - vBlobPos);

vec3 GetColour( in vec2 vPixelPosition )
  vec2 vPosition = vPixelPosition;
   float fValue = 0.0;
  fValue += GetBlobValue( vPosition, vec2( 0.0, 0.0 ) );
  fValue += GetBlobValue( vPosition, vec2( -1.0, 0.0 ) );
  fValue += GetBlobValue( vPosition, vec2( 0.0, -1.0 ) );
  fValue += GetBlobValue( vPosition, vec2( -1.0, -1.0 ) );
  fValue = max(fValue, 0.0);
  fValue = 1.0 - abs(0.7 - fValue);
  fValue = max(fValue, 0.0);
  fValue = pow(fValue, 5.0);
  vec3 cColA = vec3(0.7, 0.0, 0.0);
  vec3 cColB = vec3(0.2, 0.0, 0.2);
    return cColA * fValue + cColB * (1.0 - fValue);


Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Вышел новый кроссплатформенный тест производительности видео..., opennews, 14-Ноя-12, 20:09  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру