Tôi có một ứng dụng opengl tải một dxf và vẽ nó trên màn hình, mỗi lần tôi cần tính toán các chuẩn. có cách nào để tính toán normals trong GPU thay vì CPU? nếu vậy thì sao?tôi có thể tính toán normals trong gpu?
Trả lời
Có, có thể. Bạn sẽ muốn tìm hiểu về Shaders trong Cg.
Hãy xem glEnable(GL_AUTO_NORMAL)
.
Bạn có thể tính toán các tiêu chuẩn "có độ bóng mờ" (một bình thường trên mỗi mặt) từ trong trình đổ bóng hình. Một cho mỗi tam giác, "trên bay", sử dụng các sản phẩm chéo. Bạn không thể tạo ra các tiêu chuẩn "mịn" theo cách đó, bởi vì GS không có thông tin về hàng xóm.
Nếu lưới là tham số (ví dụ: metaballs), bình thường có thể được tính bằng cách lấy mẫu vài giá trị hàm lân cận. Điều này cũng có thể được thực hiện trên GPU.
Bạn cũng có thể tính toán các tiêu chuẩn trong trình đổ bóng nếu lưới dựa trên chiều cao hoặc một cái gì đó tương tự.
NẾU GPU hỗ trợ CUDA, OpenCL hoặc một cái gì đó tương tự, VÀ nếu nó có thể xử lý mảng dữ liệu tùy ý, thì bạn cũng có thể tính toán các chỉ tiêu trên GPU, sử dụng tehcniques truyền thống.
Ngoài ra, tôi nghĩ rằng 5 năm trước (hoặc lâu hơn) tôi đã thấy một bài báo có tiêu đề như "làm mịn bình thường trên GPU" hoặc "thế hệ bình thường trên GPU". Nó có một trái tim đa giác phản chiếu bóng mờ trên trang đầu tiên. Thật không may, tôi không thể xác định vị trí giấy đó, và tôi không chắc chắn chính xác nếu nó tồn tại (hoặc nơi tôi nhìn thấy nó). Bạn có thể tìm thấy nó (nếu nó tồn tại) trong các giấy tờ GDC, các giấy tờ SIGGRAPH, ATI SDK hoặc NVidia SDK.
Bạn sẽ phải sử dụng trình đổ bóng.
Bạn có thể sử dụng trình đổ bóng hình học GLSL. Đây là phiên bản GLSL cho các chỉ tiêu khuôn mặt. Các tiêu chuẩn đỉnh đòi hỏi nhiều công việc hơn vì chúng phải tính đến các đỉnh lân cận.
- Đảm bảo thẻ đồ họa của bạn hỗ trợ trình tạo hình học! Sử dụng ví dụ GPU Caps Viewer.
- Cắt và dán bất kỳ hướng dẫn nào để kết hợp trình đổ bóng hình học trong ứng dụng của bạn.
- Các shader sẽ trông như thế này:
//glsl shader
#version 120
#extension GL_EXT_geometry_shader4 : enable
void main(void)
{
// Compute per-face normal
vec4 d1 = gl_PositionIn[1] - gl_PositionIn[0];
vec4 d2 = gl_PositionIn[2] - gl_PositionIn[0];
gl_Normal = cross(d1,d2);
// Emit all input vertices
for(i=0; i< gl_VerticesIn; i++){
gl_Position = gl_PositionIn[i];
EmitVertex();
}
EndPrimitive();
}
- 1. Tính toán Multi-GPU Cuda
- 2. Tôi có nên tính toán ma trận trên GPU hoặc trên CPU không?
- 3. GPU và CPU? Số lõi/luồng trong GPU để tăng tốc tính toán chương trình?
- 4. Làm thế nào để bạn tính toán góc giữa hai normals trong glsl?
- 5. Chức năng tầm thường nhất nào có thể được tính toán trên GPU?
- 6. Tôi có thể tính toán bên trong dimens.xml không?
- 7. Sử dụng GPU để tăng tốc độ tính toán BigInteger
- 8. Có đáng để tải tính toán FFT vào GPU được nhúng không?
- 9. Có thuật toán sắp xếp mảng chuỗi cho GPU không?
- 10. Thuật toán triangulation Delaunay có sẵn nhanh nhất cho GPU
- 11. Thuật toán đồ thị trên GPU
- 12. Tôi có thể tính toán điểm kinh nghiệm (1 + 2j) trong python không?
- 13. Tôi có thể tính toán pow (10, x) tại thời gian biên dịch trong c?
- 14. Tôi có thể sử dụng lại trường được tính toán trong truy vấn SELECT không?
- 15. Làm cách nào tôi có thể tính toán thời gian một hàm trong jQuery?
- 16. Làm thế nào tôi có thể tính toán khoảng cách giữa hai điểm gps trong Java?
- 17. Làm thế nào để tính toán k giá trị eigen lớn nhất trên GPU?
- 18. Thuật toán thống kê Sparse Cholesky cho GPU
- 19. Tôi có thể sử dụng lõi trong GPU từ C# KHÔNG thay đổi mã?
- 20. Làm thế nào để làm nội suy tuyến tính của normals trên một quad?
- 21. Làm thế nào để bạn tính toán tải trên một nvidia (cuda có khả năng), thẻ gpu?
- 22. Sử dụng GPU trên Silverlight 5 cho toán học có mục đích chung
- 23. OpenGL: Hoạt hình của xương, Tại sao tôi cần đảo ngược khi sử dụng GPU khi làm việc với GPU?
- 24. Tôi có thể tính toán có bao nhiêu ngày cuối tuần giữa hai ngày trong SQL Server?
- 25. Tôi có thể tìm danh sách đen trên WebGL GPU của Chrome ở đâu?
- 26. GPU đọc từ CPU hoặc CPU ghi vào GPU?
- 27. Có bao nhiêu băm SHA256 có thể tính toán máy tính hiện đại?
- 28. Bản chạy Android có thể chạy trên GPU không?
- 29. Renderscript và GPU
- 30. Tôi có thể đặt thuộc tính `thuộc tính` của` UILabel`
Các normals phải được tính toán trong một Shader hình học, không phân mảnh. – ext