。。。比較菜。。。實現的不大好看,不過看到沒有人寫類似的演算法。。。。。分享出來,當作各位的墊腳石吧
原理就是,在ebo中索引連線連成一條順滑的由原點發出的線。。。其實主要就是對頂點索引的研究,各位看官自行觀察
想要細分的話,需要改變對圓的切割量和一條r上點的數目,。。。。
著色器最普通的就可以,這是演算法。
效果圖如下:
這是原始碼。。。
#include #include #define stb_image_implementation
#include "stb_image.h"
#define pi 3.1415926
#include #include #include #include "shader.h"
#include "camera.h"
#include #include using namespace std;
std::vectordrawglobevbo()
j += 0.25f;
} }return c;
}std::vectordrawglobeebo()
else
}return ebo;
}int main()
glfwmakecontextcurrent(window);
if (!gladloadglloader((gladloadproc)glfwgetprocaddress))
//glfwsetinputmode(window, glfw_cursor, glfw_cursor_disabled);
glenable(gl_depth_test);
shader lampshader("6.lamp.vs", "6.lamp.fs");
vectormmc = drawglobevbo();
vectormfc = drawglobeebo();
unsigned int vbo, cubevao;
glgenvertexarrays(1, &cubevao);
glgenbuffers(1, &vbo);
glbindvertexarray(cubevao);
glbindbuffer(gl_array_buffer, vbo);
glbufferdata(gl_array_buffer, mmc.size()*sizeof(float),&mmc[0], gl_static_draw);
// &vertor[0] 是指這個vector的位址。&vector不是指vector位址。
glvertexattribpointer(0, 3, gl_float, gl_false, 3 * sizeof(float), (void*)0);
glenablevertexattribarray(0);
unsigned int ebo;
glgenbuffers(1, &ebo);
glbindbuffer(gl_element_array_buffer, ebo);
glbufferdata(gl_element_array_buffer, mfc.size()*sizeof(float),&mfc[0], gl_static_draw);
// &vertor[0] 是指這個vector的位址。&vector不是指vector位址。
glvertexattribpointer(0, 3, gl_float, gl_false, 3 * sizeof(float), (void*)0);
glenablevertexattribarray(0);
/*glm::mat4 projection = glm::perspective(45.0f, (float)800 / (float)600, 0.1f, 100.0f);
glm::mat4 view = camera.getviewmatrix();*/
while (!glfwwindowshouldclose(window))
gldeletevertexarrays(1, &cubevao);
gldeletebuffers(1, &vbo);
glfwterminate();
return 0;
}
以上。。。 C語言如何用OpenGL
c語言究竟可不可以使用opengl程式設計?網上多的是vc 的,delphi的等等 可我就是不想學vc 用c語言又不知道怎麼初始化設定,好痛苦的。比方說vc 中,是這樣設定的 1.將glut.dll和glut32.dll拷貝到windows system32目錄下。2.將glut.h拷貝到整合環境安...
如何用C 實現棧
簡單定義 棧就是一種只允許在表尾進行插入和刪除操作的線性表 舉乙個生活中的例子 我在乙個儲物箱中,堆了一堆衣服,我的一件球衣在最下面,而我要拿這件衣服,就意味著我必須將上面的衣服全部拿出來才可以,但是由於箱子只有乙個口,我也只能從上面拿東西,心裡還默默想著,當初就不該將球衣早早的放進去,導致結果就是...
如何用C 實現自己的Tensorflow
摘要 tensorflow是由谷歌基於distbelief進行研發的第二代人工智慧學習系統,其命名 於本身的執行原理,它完全開源,作者通過自己的乙個小專案,闡述了如何用c 實現自己的tensorflow,這篇文章看起來可能會有點晦澀,你需要對相關知識有所了解。以下是譯文。在我們開始之前,以下是 br...