資源簡介
本資源包括項目演示視頻、源代碼、說明文檔、項目資源。
本場景是一個籃球場,籃球可以做自由落體運動和反彈。
場景涉及燈光,紋理,攝像機的移動。
具體細節可看博客:https://blog.csdn.net/A_ACM/article/details/100569142
代碼片段和文件信息
#include
#include?
#include?
#include?
#include
struct?vec3
{
????float?x;
????float?y;
????float?z;
};
#define?a?-0.00003
#define?PI?acos(-1.0)
#define?BMP_Header_Length?54
double?v=0;
double?x=0;
double?ypos=5;
double?v0=0;
int?t=0;
int?flag=1;
float?xPosition=0;?///相機位置
float?yPosition=6;
float?zPosition=6;
float?radius?=?40.0f;///相機旋轉的長度
float?theta?=?0;///相機旋轉角度
float?thetb?=?40;
float?step=0;///球移動
float?step2=0;
float?step3=0;///太陽旋轉
float?radius2=40;
GLuint?tex1tex2tex3tex4;
int?power_of_two(int?n)
{
????if(?n?<=?0?)
????????return?0;
????return?(n?&?(n-1))?==?0;
}
GLuint?load_texture(const?char*?file_name)
{
????GLint?width?height?total_bytes;
????GLubyte*?pixels?=?0;
????GLuint?last_texture_ID=0?texture_ID?=?0;
????FILE*?pFile?=?fopen(file_name?“rb“);
????if(?pFile?==?0?)
????????return?0;
????fseek(pFile?0x0012?SEEK_SET);
????fread(&width?4?1?pFile);
????fread(&height?4?1?pFile);
????fseek(pFile?BMP_Header_Length?SEEK_SET);
????{
????????GLint?line_bytes?=?width?*?3;
????????while(?line_bytes?%?4?!=?0?)
????????????++line_bytes;
????????total_bytes?=?line_bytes?*?height;
????}
????pixels?=?(GLubyte*)malloc(total_bytes);
????if(?pixels?==?0?)
????{
????????fclose(pFile);
????????return?0;
????}
????if(?fread(pixels?total_bytes?1?pFile)?<=?0?)
????{
????????free(pixels);
????????fclose(pFile);
????????return?0;
????}
????{
????????GLint?max;
????????glGetIntegerv(GL_MAX_TEXTURE_SIZE?&max);
????????if(?!power_of_two(width)?||?!power_of_two(height)?||?width?>?max?||?height?>?max?)
????????{
????????????const?GLint?new_width?=?256;
????????????const?GLint?new_height?=?256;
????????????GLint?new_line_bytes?new_total_bytes;
????????????GLubyte*?new_pixels?=?0;
????????????new_line_bytes?=?new_width?*?3;
????????????while(?new_line_bytes?%?4?!=?0?)
????????????????++new_line_bytes;
????????????new_total_bytes?=?new_line_bytes?*?new_height;
????????????new_pixels?=?(GLubyte*)malloc(new_total_bytes);
????????????if(?new_pixels?==?0?)
????????????{
????????????????free(pixels);
????????????????fclose(pFile);
????????????????return?0;
????????????}
????????????gluScaleImage(GL_RGB?width?height?GL_UNSIGNED_BYTE?pixelsnew_width?new_height?GL_UNSIGNED_BYTE?new_pixels);
????????????free(pixels);
????????????pixels?=?new_pixels;
????????????width?=?new_width;
????????????height?=?new_height;
????????}
????}
????glGenTextures(1?&texture_ID);
????if(?texture_ID?==?0?)
????{
????????free(pixels);
????????fclose(pFile);
????????return?0;
????}
????GLint?lastTextureID=last_texture_ID;
????glGetIntegerv(GL_TEXTURE_BINDING_2D?&lastTextureID);
????glBindTexture(GL_TEXTURE_2D?texture_ID);
????glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_MIN_FILTER?GL_LINEAR);
????glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_MAG_FILTER?GL_LINEAR);
????glTexParameteri
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????1227654??2019-06-19?08:56??籃球場\data\3.bmp
?????文件????2141238??2019-06-20?09:54??籃球場\data\5.bmp
?????文件??????11338??2019-06-21?11:37??籃球場\data\c.png
?????文件????1227654??2019-06-19?08:56??籃球場\HomeWork\bin\data\3.bmp
?????文件????2141238??2019-06-20?09:54??籃球場\HomeWork\bin\data\5.bmp
?????文件??????11338??2019-06-21?11:37??籃球場\HomeWork\bin\data\c.png
?????文件??????55892??2019-06-27?15:27??籃球場\HomeWork\bin\Debug\HomeWork.exe
?????文件???????1447??2019-06-16?12:52??籃球場\HomeWork\HomeWork.cbp
?????文件???????5634??2019-06-27?15:22??籃球場\HomeWork\HomeWork.depend
?????文件????????362??2019-06-27?15:27??籃球場\HomeWork\HomeWork.layout
?????文件??????13019??2019-06-27?15:27??籃球場\HomeWork\main.cpp
?????文件??????23767??2019-06-27?15:27??籃球場\HomeWork\obj\Debug\main.o
?????文件??????55892??2019-06-27?15:26??籃球場\HomeWork.exe
?????文件???37093523??2019-06-27?14:57??籃球場\作品演示.mp4
?????文件??????13019??2019-06-27?15:29??籃球場\源碼.txt
?????文件?????407384??2019-09-06?11:04??籃球場\說明文檔.pdf
?????目錄??????????0??2019-06-27?15:19??籃球場\HomeWork\bin\data
?????目錄??????????0??2019-06-27?15:27??籃球場\HomeWork\bin\Debug
?????目錄??????????0??2019-06-27?15:27??籃球場\HomeWork\obj\Debug
?????目錄??????????0??2019-06-27?15:19??籃球場\HomeWork\bin
?????目錄??????????0??2019-06-27?15:05??籃球場\HomeWork\obj
?????目錄??????????0??2019-06-27?15:26??籃球場\data
?????目錄??????????0??2019-06-27?15:28??籃球場\HomeWork
?????目錄??????????0??2019-09-06?11:04??籃球場
-----------?---------??----------?-----??----
?????????????44430399????????????????????24
- 上一篇:冒險島同步版本登錄器源碼.rar
- 下一篇:新尚硅谷大數據技術之Hadoop入門
評論
共有 條評論