reduced the maximum shadow blur size to avoid running into some gpu limitations for now
This commit is contained in:
parent
6f74599567
commit
a01a6799f1
5 changed files with 767 additions and 767 deletions
|
@ -220,7 +220,7 @@ var (
|
|||
ir *imageShader
|
||||
gauss15r *gaussianShader
|
||||
gauss63r *gaussianShader
|
||||
gauss255r *gaussianShader
|
||||
gauss127r *gaussianShader
|
||||
offscr1 offscreenBuffer
|
||||
offscr2 offscreenBuffer
|
||||
glChan = make(chan func())
|
||||
|
@ -354,7 +354,7 @@ func LoadGL(glimpl GL) (err error) {
|
|||
}
|
||||
gauss63r = (*gaussianShader)(gauss63s)
|
||||
|
||||
gauss255s, err := loadGaussian255Shader()
|
||||
gauss127s, err := loadGaussian127Shader()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
@ -362,7 +362,7 @@ func LoadGL(glimpl GL) (err error) {
|
|||
if err != nil {
|
||||
return
|
||||
}
|
||||
gauss255r = (*gaussianShader)(gauss255s)
|
||||
gauss127r = (*gaussianShader)(gauss127s)
|
||||
|
||||
gli.GenBuffers(1, &buf)
|
||||
err = glError()
|
||||
|
|
1500
made_shaders.go
1500
made_shaders.go
File diff suppressed because it is too large
Load diff
12
shaders.go
12
shaders.go
|
@ -327,7 +327,7 @@ _SUM_
|
|||
gl_FragColor = color;
|
||||
}`
|
||||
|
||||
var gaussian255VS = `
|
||||
var gaussian127VS = `
|
||||
attribute vec2 vertex, texCoord;
|
||||
uniform vec2 canvasSize;
|
||||
varying vec2 v_texCoord;
|
||||
|
@ -336,14 +336,14 @@ void main() {
|
|||
vec2 glp = vertex * 2.0 / canvasSize - 1.0;
|
||||
gl_Position = vec4(glp.x, -glp.y, 0.0, 1.0);
|
||||
}`
|
||||
var gaussian255FS = `
|
||||
var gaussian127FS = `
|
||||
#ifdef GL_ES
|
||||
precision mediump float;
|
||||
#endif
|
||||
varying vec2 v_texCoord;
|
||||
uniform vec2 kernelScale;
|
||||
uniform sampler2D image;
|
||||
uniform float kernel[255];
|
||||
uniform float kernel[127];
|
||||
void main() {
|
||||
vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
|
||||
_SUM_
|
||||
|
@ -353,11 +353,11 @@ _SUM_
|
|||
func init() {
|
||||
fstr := "\tcolor += texture2D(image, v_texCoord + vec2(%.1f * kernelScale.x, %.1f * kernelScale.y)) * kernel[%d];\n"
|
||||
bb := bytes.Buffer{}
|
||||
for i := 0; i < 255; i++ {
|
||||
off := float64(i) - 127
|
||||
for i := 0; i < 127; i++ {
|
||||
off := float64(i) - 63
|
||||
fmt.Fprintf(&bb, fstr, off, off, i)
|
||||
}
|
||||
gaussian255FS = strings.Replace(gaussian255FS, "_SUM_", bb.String(), -1)
|
||||
gaussian127FS = strings.Replace(gaussian127FS, "_SUM_", bb.String(), -1)
|
||||
bb.Reset()
|
||||
for i := 0; i < 63; i++ {
|
||||
off := float64(i) - 31
|
||||
|
|
|
@ -128,8 +128,8 @@ func (cv *Canvas) drawBlurredShadow() {
|
|||
gs = gauss63r
|
||||
kernel = kernelBuf[:63]
|
||||
} else {
|
||||
gs = gauss255r
|
||||
kernel = kernelBuf[:255]
|
||||
gs = gauss127r
|
||||
kernel = kernelBuf[:127]
|
||||
}
|
||||
|
||||
gaussianKernel(cv.state.shadowBlur, kernel)
|
||||
|
|
Loading…
Reference in a new issue