Home

Page 16
Page 16
background image

Использование текстур 

Использование текстур 

(пример часть 1)

texture<

float

, 2, cudaReadModeElementType> tex; 

// declare texture reference for 2D float texture

__global__ void transformKernel( 

float

* g_odata, 

int

width, 

int

height, 

float

theta) 

{

// calculate normalized texture coordinates

unsigned int x = blockIdx.x*blockDim.x + threadIdx.x;
unsigned int y = blockIdx.y*blockDim.y + threadIdx.y;

float

u = x / (

float

) width;

float

v = y / (

float

) height;

u -= 0.5f; 

// transform coordinates

 0.5f; 

// transform coordinates

v -= 0.5f;

float

tu = u*cosf(theta) - v*sinf(theta) + 0.5f;

float

tv = v*cosf(theta) + u*sinf(theta) + 0.5f;

// read from texture and write to global memory

g_odata[y*width + x] = tex2D(tex, tu, tv);

}


Copyright © 2018 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.