资源简介
本资源包括项目演示视频、源代码、说明文档、项目资源。
本场景是一个篮球场,篮球可以做自由落体运动和反弹。
场景涉及灯光,纹理,摄像机的移动。
具体细节可看博客: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入门
相关资源
- opengl显示兔子程序
- learnopengl-cn-2018年5月更新.pdf
- OpenGL超级宝典完整源码(第五版)
- OpenGL游戏程序设计+源码
- opengl编程指南第七版
- 基于OpenGL实现的各种粒子特效
- 3D模型obj文件导入渲染光照贴图
- OpenGL配置库与教程实现一个.
- 基于特征点匹配的三维重建OpenCV+Ope
- OpenGL编程指南原书第8版 中文PDF 高清
- glui批生成文件
- 利用opengl 读取建筑物模型 obj文件并加
- 学OpenGL编3D游戏含源代码
- openGL正方体贴图
- 用opengl写的一个保龄球游戏
- OpenGL完成对OFF文件的读取和使三维模
- OpenGL实验八犹他茶壶光照、阴影、纹
- opengl绘制花瓶演示
- 自己写的读取任意格式点云并读取的
- opengl加载off文件
- OPENGL 水波效果 源代码
- OpenGL光照测试Revision演示程序
- 基于OpenGL的3D旋转魔方
- OpenGL ES 3.x游戏开发 下卷
- OpenGL太阳系
- OpenGL实现小车模型的导入和渲染
- opengl绘制简单场景,实现平移旋转缩
- OpenGL读取显示obj文件并渲染
- OpenGL ES应用开发实践 指南 iOS卷pdf
- 计算机图形学OpenGL第三版.pdf
评论
共有 条评论