Ngược lại, phiên bản - 78winđăngnhập
Truy Cập và Tham Gia Ngay Description 78Win Đăng Nhập - Trải nghiệm trò chơi đỉnh cao và cơ hội trúng thưởng hấp dẫn trên 78Win Đăng Nhập. Đăng nhập ngay để tham gia

Chỉ Một Cập Nhật Nhanh

CGINCLUDE
    void FAST32_hash_2D( float2 gridcell, out float4 hash_0, out float4 hash_1 ) // sinh ra 2 số ngẫu nhiên cho mỗi góc của ô lưới
    {
        // gridcell được giả định là tọa độ nguyên
        const float2 OFFSET = float2( 26.0, 161.0 );
        const float DOMAIN = 71.0;
        const float2 SOMELARGEFLOATS = float2( 951.135664, 642.949883 );
        float4 P = float4( gridcell.xy, gridcell.xy + 1.0 );
        P = P - floor(P * ( 1.0 / DOMAIN )) * DOMAIN;
        P += OFFSET.xyxy;
        P *= P;
        P = P.xzxz * P.yyww;
        hash_0 [Trang Chủ Nohu17](https://www.cymlb.com)  = frac( P * ( 1.0 / SOMELARGEFLOATS.x ) );
        hash_1 = frac( P * ( 1.0 / SOMELARGEFLOATS.y ) );
    }
    float2 Interpolation_C2( float2 x ) { return x * x * x * (x * (x * 6.0 - 15.0) + 10.0); }
    float Perlin2D( float2 P )
    {
        float2 Pi = floor(P);
        float4 Pf_Pfmin1 = P.xyxy - float4( Pi, Pi + 1.0 );
    
        float4 hash_x, hash_y;
        FAST32_hash_2D( Pi, hash_x, hash_y );
    
        float4 grad_x = hash_x - 0.49999;
        float4 grad_y = hash_y - 0.49999;
        float4 grad_results = rsqrt( grad_x * grad_x + grad_y * grad_y ) * ( grad_x * Pf_Pfmin1.xzxz + grad_y * Pf_Pfmin1.yyww );
    
        grad_results *= 1.4142135623730950488016887242097;		// (tùy chọn) điều chỉnh phạm vi từ -1.0 đến 1.0 *= 1.0/sqrt(0.5)
        float2 blend = Interpolation_C2( Pf_Pfmin1.xy );
        float2 res0 = lerp( grad_results.xy, grad_results.zw, blend.y );
        return lerp( res0.x, res0.y, blend.x );
    }
    float PerlinNormal(float2 p, int octaves, float2 offset, float frequency, float amplitude, float lacunarity, float persistence)
    {
        float sum = 0;
        for (int i = 0; i < octaves; i++)
        {
            float h = 0;
            h = Perlin2D((p + offset) * frequency);
            sum += h*amplitude;
            frequency *= lacunarity;
            amplitude *= persistence;
        }
        return sum;
    }
ENDCG

Đoạn mã trên được lấy từ briansharpe, khi viết thành Shader trong Unity và sử dụng RenderTexture (cần có Unity Pro), nó có thể hiển thị dữ liệu dạng float[4096][2048] lên Texture và thậm chí có thể thay đổi hạt giống (seed) theo thời gian thực trong hàm Update(). Ngược lại, phiên bản .Net của LibNoise cần khoảng nửa phút để hoàn thành công việc tương tự. Điều này khiến tôi vô cùng phấn khích vì LibNoise thực sự quá chậm, ngay cả phiên bản C++ cũng mất khoảng hai mươi phút để tạo một bản đồ bề mặt hành tinh. Trước đó, tôi đã thử nghiệm nhiều cách ca cuoc bong da bang the cao tăng tốc quá trình tạo Noise, thậm chí bắt đầu viết một phiên bản LibNoise trong Swift bằng cách sử dụng Accelerate.Framework để tận dụng SIMD nhằm tăng hiệu suất, nhưng kết quả vẫn chưa như mong đợi. Nếu ngay từ đầu tôi đã sử dụng Shader để tính toán, thì vấn đề này đã được giải quyết từ lâu.


Sửa đổi lần cuối vào 2025-05-18

78win+đăng+nhập Trang Chủ Nohu17 ca cuoc bong da bang the cao kèo cá cược bóng đá ty le keo chau a