|
Нужна помощь по работе с CUDA на C#
|
|||
---|---|---|---|
#18+
В интернете я нашел программу, которая рисует множество Мандельброта. Пожалуйста, прокомментируйте код, чтобы я мог разобраться в приложении. Приложение написано для этого задания: авторМножество Мандельброта это множество таких комплексных чисел c таких, что последовательность z(n+1)=z(n)^2+c ограничена при z(0)=0. Напомним, что комплексному числу x+iy можно сопоставить точку (x,y). При этом (x+iy)(x+iy)=x^2-y^2+2xyi. Напишите программу, которая получает данное множество на GPU. После запуска программы должен создаваться файл-изображение. Цвет пикселя должен зависеть от того, сколько итераций прошло до того, как точка вышла за границы круга с радиусом 100. Например, мы хотим определить цвет пикселя c=(-1,0). Тогда z(0)=(0,0), z(1)=(-1,0), z(2)=(0,0), z(3)=(-1,0) и т.д. Поскольку точка не выходит за границы, то её цвет — чёрный. Если же c=(1,1), то z(0)=(0,0), z(1)=(1,1), z(2)=(1,3), z(3)=(-7,7), z(4)=(1,-97), z(5)=(-9407,-193). То есть на пятом шаге произошёл выход за границы. Поэтому цвет точки (1, 1) — очень близкий к белому. Ядро должно отвечать за определение цвета одного пикселя. Соответственно суммарное количество потоков должно равняться суммарному количеству пикселей. Для пикселя в строке i и столбце j вам нужно сначала найти какой точке (x,y) он соответствует, затем определить цвет по описанной выше формуле и записать в массив цветов нужные значение. Массив цветов пикселей это массив байт в котором четыре подряд идущие байта определяют прозрачную, синию, зелёную и красную состовляющую цвета. Чтобы получить доступ к массиву байт MSDN рекомендует следующий способ. Вот код программы: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2014, 14:06 |
|
Нужна помощь по работе с CUDA на C#
|
|||
---|---|---|---|
#18+
Вот рабочий вариант приложения: http://dropmefiles.com/NCy4v P.S. У меня приложение не запускается, т.к. видеокарта не NVidia поэтому и прошу прокомментировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2014, 14:10 |
|
|
start [/forum/topic.php?fid=20&msg=38600144&tid=1403092]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 159ms |
0 / 0 |