step
This commit is contained in:
parent
0bec81c656
commit
fe6d2c0ed3
190 changed files with 104835 additions and 5 deletions
BIN
examples/shaders/shapes_textures/fudesumi.png
Normal file
BIN
examples/shaders/shapes_textures/fudesumi.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 218 KiB |
26
examples/shaders/shapes_textures/glsl330/base.vs
Normal file
26
examples/shaders/shapes_textures/glsl330/base.vs
Normal file
|
@ -0,0 +1,26 @@
|
|||
#version 330
|
||||
|
||||
// Input vertex attributes
|
||||
in vec3 vertexPosition;
|
||||
in vec2 vertexTexCoord;
|
||||
in vec3 vertexNormal;
|
||||
in vec4 vertexColor;
|
||||
|
||||
// Input uniform values
|
||||
uniform mat4 mvp;
|
||||
|
||||
// Output vertex attributes (to fragment shader)
|
||||
out vec2 fragTexCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// NOTE: Add here your custom variables
|
||||
|
||||
void main()
|
||||
{
|
||||
// Send vertex attributes to fragment shader
|
||||
fragTexCoord = vertexTexCoord;
|
||||
fragColor = vertexColor;
|
||||
|
||||
// Calculate final vertex position
|
||||
gl_Position = mvp*vec4(vertexPosition, 1.0);
|
||||
}
|
26
examples/shaders/shapes_textures/glsl330/grayscale.fs
Normal file
26
examples/shaders/shapes_textures/glsl330/grayscale.fs
Normal file
|
@ -0,0 +1,26 @@
|
|||
#version 330
|
||||
|
||||
// Input vertex attributes (from vertex shader)
|
||||
in vec2 fragTexCoord;
|
||||
in vec4 fragColor;
|
||||
|
||||
// Input uniform values
|
||||
uniform sampler2D texture0;
|
||||
uniform vec4 colDiffuse;
|
||||
|
||||
// Output fragment color
|
||||
out vec4 finalColor;
|
||||
|
||||
// NOTE: Add here your custom variables
|
||||
|
||||
void main()
|
||||
{
|
||||
// Texel color fetching from texture sampler
|
||||
vec4 texelColor = texture(texture0, fragTexCoord)*colDiffuse*fragColor;
|
||||
|
||||
// Convert texel color to grayscale using NTSC conversion weights
|
||||
float gray = dot(texelColor.rgb, vec3(0.299, 0.587, 0.114));
|
||||
|
||||
// Calculate final fragment color
|
||||
finalColor = vec4(gray, gray, gray, texelColor.a);
|
||||
}
|
74
examples/shaders/shapes_textures/main.go
Normal file
74
examples/shaders/shapes_textures/main.go
Normal file
|
@ -0,0 +1,74 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/gen2brain/raylib-go/raylib"
|
||||
)
|
||||
|
||||
func main() {
|
||||
screenWidth := int32(800)
|
||||
screenHeight := int32(450)
|
||||
|
||||
rl.InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shapes and texture shaders")
|
||||
|
||||
fudesumi := rl.LoadTexture("fudesumi.png")
|
||||
|
||||
// NOTE: Using GLSL 330 shader version, on OpenGL ES 2.0 use GLSL 100 shader version
|
||||
shader := rl.LoadShader("glsl330/base.vs", "glsl330/grayscale.fs")
|
||||
|
||||
rl.SetTargetFPS(60)
|
||||
|
||||
for !rl.WindowShouldClose() {
|
||||
rl.BeginDrawing()
|
||||
|
||||
rl.ClearBackground(rl.RayWhite)
|
||||
|
||||
// Start drawing with default shader
|
||||
|
||||
rl.DrawText("USING DEFAULT SHADER", 20, 40, 10, rl.Red)
|
||||
|
||||
rl.DrawCircle(80, 120, 35, rl.DarkBlue)
|
||||
rl.DrawCircleGradient(80, 220, 60, rl.Green, rl.SkyBlue)
|
||||
rl.DrawCircleLines(80, 340, 80, rl.DarkBlue)
|
||||
|
||||
// Activate our custom shader to be applied on next shapes/textures drawings
|
||||
rl.BeginShaderMode(shader)
|
||||
|
||||
rl.DrawText("USING CUSTOM SHADER", 190, 40, 10, rl.Red)
|
||||
|
||||
rl.DrawRectangle(250-60, 90, 120, 60, rl.Red)
|
||||
rl.DrawRectangleGradientH(250-90, 170, 180, 130, rl.Maroon, rl.Gold)
|
||||
rl.DrawRectangleLines(250-40, 320, 80, 60, rl.Orange)
|
||||
|
||||
// Activate our default shader for next drawings
|
||||
rl.EndShaderMode()
|
||||
|
||||
rl.DrawText("USING DEFAULT SHADER", 370, 40, 10, rl.Red)
|
||||
|
||||
rl.DrawTriangle(rl.NewVector2(430, 80),
|
||||
rl.NewVector2(430-60, 150),
|
||||
rl.NewVector2(430+60, 150), rl.Violet)
|
||||
|
||||
rl.DrawTriangleLines(rl.NewVector2(430, 160),
|
||||
rl.NewVector2(430-20, 230),
|
||||
rl.NewVector2(430+20, 230), rl.DarkBlue)
|
||||
|
||||
rl.DrawPoly(rl.NewVector2(430, 320), 6, 80, 0, rl.Brown)
|
||||
|
||||
// Activate our custom shader to be applied on next shapes/textures drawings
|
||||
rl.BeginShaderMode(shader)
|
||||
|
||||
rl.DrawTexture(fudesumi, 500, -30, rl.White) // Using custom shader
|
||||
|
||||
// Activate our default shader for next drawings
|
||||
rl.EndShaderMode()
|
||||
|
||||
rl.DrawText("(c) Fudesumi sprite by Eiden Marsal", 380, screenHeight-20, 10, rl.Gray)
|
||||
|
||||
rl.EndDrawing()
|
||||
}
|
||||
|
||||
rl.UnloadShader(shader) // Unload shader
|
||||
rl.UnloadTexture(fudesumi) // Unload texture
|
||||
|
||||
rl.CloseWindow() // Close window and OpenGL context
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue