我的一個朋友必須在c中繪製一個帶有opengl的mandelbrot。我決定在Swift中做到這一點。非常快的像素在屏幕上繪圖
我試過的第一種方法是用ARGB數據創建一個數組並將其轉換爲CGImage並在UIImageView中查看該數組。然而這還不夠快。
現在我想知道,將單個像素繪製到屏幕上的最快方法是什麼。我看着金屬,但似乎主要是關於三角形和三維的東西。然後我來到scenekit着色器(.fsh),並認爲這可能是一個很好的解決方案。但我想也能放大mandelbrot分形,我無法找到一種方法來輸入變量在我的mandelbrot(我的參考:https://www.weheartswift.com/fractals-xcode-6/)
你們可以告訴我/給一個例子(Swift請)在最快繪製單個像素的方式,或者至少是一種將原始像素繪製到屏幕上的方法,而不必像構建CGImage那樣使用中間值等東西?
您爲什麼認爲畫CGImage是慢?你的代碼是否運行過儀器?你究竟發現了什麼? – matt
你想計算GPU上的分形樣本(使用OpenGL着色器)嗎?或者你想要在CPU上計算它們(使用Swift)並且快速繪製它們?您是在每次計算像素時創建一個新的'CGImage',還是在計算完所有像素之後創建一個CGImage? –
@matt這是一種解決方法,因爲我找不到更直接的繪畫方式,而且我還必須在內存中創建一堆像素,所以我認爲它確實比較慢。 – Simon