Trả lời

1

Nó không phải là một bọc hoàn thành vào xi lanh, nhưng bạn sẽ có được một ý tưởng bắt đầu/example:

(code đang trong GLSL, không phải trong HLSL, nhưng tôi nghĩ rằng nó sẽ không khó để chuyển đổi nó)

uniform sampler2D tex; 

void main() 
{ 
vec2 cen = vec2(0.5,gl_TexCoord[0].y)-gl_TexCoord[0].xy; 
cen = vec2(pow(cen.x,1.7),pow(cen.y,2.2)); 
cen.y = 3.9*sin(1.8*gl_TexCoord[0].x-2.3); 
vec2 mcoord = 1.65*vec2(-0.22+gl_TexCoord[0].x,1.95+gl_TexCoord[0].y); 
gl_FragColor = texture2D(tex, mcoord+cen); 
} 

Từ này

alt text

bạn sẽ nhận được một cái gì đó như thế alt text

Chúc may mắn

+0

Cảm ơn bạn đã trả lời. Tôi sẽ thử cái này. –

+0

Chính xác những gì tôi cần. Nếu có ai cần HLSL ở đây là đầu vào sampler2D: đăng ký (s0); float4 main (float2 uv: TEXCOORD): COLOR { \t float4 color = 0; \t \t float2 center = float2 (0.5, uv.x/2); \t center = float2 (pow (center.x, 1.7), pow (center.y, 2.2)); \t center.y = 3.9 * sin (1.8 * uv.x - 2.3); \t float2 mcoord = 1.65 * float2 (-0,22 + uv.x, 1,95 + uv.y); \t uv.x = mcoord.x + center.x; \t uv.y = mcoord.y + center.y; \t color = tex2D (đầu vào, uv); \t trả lại (màu); } Với liên kết này, bạn có thể tìm hiểu cách sử dụng hiệu ứng đổ bóng tùy chỉnh: http://www.silverlight.net/learn/videos/all/pixel-effects/ –

+0

chúng ta có thể có được trình đổ bóng tổng quát với biến đầu vào không? – foson

0

Bạn có thể thử dùng thử Zam3d. Tôi đã sử dụng các phiên bản dùng thử trước đây và bạn có thể lấy hình dạng 3D và thử và đặt nền cho hình ảnh. Có một cái nhìn và xem nếu điều đó giúp.

Các vấn đề liên quan