parent
6acd30c6c5
commit
9029ac9315
1 changed files with 0 additions and 186 deletions
@ -1,186 +0,0 @@ |
||||
/// @ref core
|
||||
/// @file glm/core/dummy.cpp
|
||||
///
|
||||
/// GLM is a header only library. There is nothing to compile.
|
||||
/// dummy.cpp exist only a wordaround for CMake file.
|
||||
|
||||
/*
|
||||
#define GLM_MESSAGES |
||||
#include <glm/glm.hpp> |
||||
#include <glm/ext.hpp> |
||||
#include <limits> |
||||
|
||||
struct material |
||||
{ |
||||
glm::vec4 emission; // Ecm
|
||||
glm::vec4 ambient; // Acm
|
||||
glm::vec4 diffuse; // Dcm
|
||||
glm::vec4 specular; // Scm
|
||||
float shininess; // Srm
|
||||
}; |
||||
|
||||
struct light |
||||
{ |
||||
glm::vec4 ambient; // Acli
|
||||
glm::vec4 diffuse; // Dcli
|
||||
glm::vec4 specular; // Scli
|
||||
glm::vec4 position; // Ppli
|
||||
glm::vec4 halfVector; // Derived: Hi
|
||||
glm::vec3 spotDirection; // Sdli
|
||||
float spotExponent; // Srli
|
||||
float spotCutoff; // Crli
|
||||
// (range: [0.0,90.0], 180.0)
|
||||
float spotCosCutoff; // Derived: cos(Crli)
|
||||
// (range: [1.0,0.0],-1.0)
|
||||
float constantAttenuation; // K0
|
||||
float linearAttenuation; // K1
|
||||
float quadraticAttenuation;// K2
|
||||
}; |
||||
|
||||
|
||||
// Sample 1
|
||||
#include <glm/vec3.hpp>// glm::vec3 |
||||
#include <glm/geometric.hpp>// glm::cross, glm::normalize |
||||
|
||||
glm::vec3 computeNormal |
||||
( |
||||
glm::vec3 const& a, |
||||
glm::vec3 const& b, |
||||
glm::vec3 const& c |
||||
) |
||||
{ |
||||
return glm::normalize(glm::cross(c - a, b - a)); |
||||
} |
||||
|
||||
typedef unsigned int GLuint; |
||||
#define GL_FALSE 0 |
||||
void glUniformMatrix4fv(GLuint, int, int, float*){} |
||||
|
||||
// Sample 2
|
||||
#include <glm/vec3.hpp> // glm::vec3 |
||||
#include <glm/vec4.hpp> // glm::vec4, glm::ivec4 |
||||
#include <glm/mat4x4.hpp> // glm::mat4 |
||||
#include <glm/gtc/matrix_transform.hpp> // glm::translate, glm::rotate, glm::scale, glm::perspective |
||||
#include <glm/gtc/type_ptr.hpp> // glm::value_ptr |
||||
void func(GLuint LocationMVP, float Translate, glm::vec2 const& Rotate) |
||||
{ |
||||
glm::mat4 Projection = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f); |
||||
glm::mat4 ViewTranslate = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -Translate)); |
||||
glm::mat4 ViewRotateX = glm::rotate(ViewTranslate, Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f)); |
||||
glm::mat4 View = glm::rotate(ViewRotateX, Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f)); |
||||
glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f)); |
||||
glm::mat4 MVP = Projection * View * Model; |
||||
glUniformMatrix4fv(LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP)); |
||||
} |
||||
|
||||
// Sample 3
|
||||
#include <glm/vec2.hpp>// glm::vec2 |
||||
#include <glm/packing.hpp>// glm::packUnorm2x16 |
||||
#include <glm/integer.hpp>// glm::uint |
||||
#include <glm/gtc/type_precision.hpp>// glm::i8vec2, glm::i32vec2 |
||||
std::size_t const VertexCount = 4; |
||||
// Float quad geometry
|
||||
std::size_t const PositionSizeF32 = VertexCount * sizeof(glm::vec2); |
||||
glm::vec2 const PositionDataF32[VertexCount] = |
||||
{ |
||||
glm::vec2(-1.0f,-1.0f), |
||||
glm::vec2( 1.0f,-1.0f), |
||||
glm::vec2( 1.0f, 1.0f), |
||||
glm::vec2(-1.0f, 1.0f) |
||||
}; |
||||
// Half-float quad geometry
|
||||
std::size_t const PositionSizeF16 = VertexCount * sizeof(glm::uint); |
||||
glm::uint const PositionDataF16[VertexCount] = |
||||
{ |
||||
glm::uint(glm::packUnorm2x16(glm::vec2(-1.0f, -1.0f))), |
||||
glm::uint(glm::packUnorm2x16(glm::vec2( 1.0f, -1.0f))), |
||||
glm::uint(glm::packUnorm2x16(glm::vec2( 1.0f, 1.0f))), |
||||
glm::uint(glm::packUnorm2x16(glm::vec2(-1.0f, 1.0f))) |
||||
}; |
||||
// 8 bits signed integer quad geometry
|
||||
std::size_t const PositionSizeI8 = VertexCount * sizeof(glm::i8vec2); |
||||
glm::i8vec2 const PositionDataI8[VertexCount] = |
||||
{ |
||||
glm::i8vec2(-1,-1), |
||||
glm::i8vec2( 1,-1), |
||||
glm::i8vec2( 1, 1), |
||||
glm::i8vec2(-1, 1) |
||||
}; |
||||
// 32 bits signed integer quad geometry
|
||||
std::size_t const PositionSizeI32 = VertexCount * sizeof(glm::i32vec2); |
||||
glm::i32vec2 const PositionDataI32[VertexCount] = |
||||
{ |
||||
glm::i32vec2 (-1,-1), |
||||
glm::i32vec2 ( 1,-1), |
||||
glm::i32vec2 ( 1, 1), |
||||
glm::i32vec2 (-1, 1) |
||||
}; |
||||
|
||||
struct intersection |
||||
{ |
||||
glm::vec4 position; |
||||
glm::vec3 normal; |
||||
}; |
||||
*/ |
||||
|
||||
|
||||
/*
|
||||
// Sample 4
|
||||
#include <glm/vec3.hpp>// glm::vec3 |
||||
#include <glm/geometric.hpp>// glm::normalize, glm::dot, glm::reflect |
||||
#include <glm/exponential.hpp>// glm::pow |
||||
#include <glm/gtc/random.hpp>// glm::vecRand3 |
||||
glm::vec3 lighting |
||||
( |
||||
intersection const& Intersection, |
||||
material const& Material, |
||||
light const& Light, |
||||
glm::vec3 const& View |
||||
) |
||||
{ |
||||
glm::vec3 Color(0.0f); |
||||
glm::vec3 LightVertor(glm::normalize( |
||||
Light.position - Intersection.position + |
||||
glm::vecRand3(0.0f, Light.inaccuracy)); |
||||
|
||||
if(!shadow(Intersection.position, Light.position, LightVertor)) |
||||
{ |
||||
float Diffuse = glm::dot(Intersection.normal, LightVector); |
||||
if(Diffuse <= 0.0f) |
||||
return Color; |
||||
if(Material.isDiffuse()) |
||||
Color += Light.color() * Material.diffuse * Diffuse; |
||||
if(Material.isSpecular()) |
||||
{ |
||||
glm::vec3 Reflect(glm::reflect( |
||||
glm::normalize(-LightVector), |
||||
glm::normalize(Intersection.normal))); |
||||
float Dot = glm::dot(Reflect, View); |
||||
float Base = Dot > 0.0f ? Dot : 0.0f; |
||||
float Specular = glm::pow(Base, Material.exponent); |
||||
Color += Material.specular * Specular; |
||||
} |
||||
} |
||||
return Color; |
||||
} |
||||
*/ |
||||
|
||||
int main() |
||||
{ |
||||
/*
|
||||
glm::vec1 o(1); |
||||
glm::vec2 a(1); |
||||
glm::vec3 b(1); |
||||
glm::vec4 c(1); |
||||
|
||||
glm::quat q; |
||||
glm::dualquat p; |
||||
|
||||
glm::mat4 m(1); |
||||
|
||||
float a0 = normalizeDotA(a, a); |
||||
float b0 = normalizeDotB(b, b); |
||||
float c0 = normalizeDotC(c, c); |
||||
*/ |
||||
return 0; |
||||
} |
Loading…
Reference in New Issue