mirror of
https://github.com/overte-org/overte.git
synced 2025-07-16 00:36:52 +02:00
Merge pull request #7256 from samcake/orange
Fix the text rendering Bug
This commit is contained in:
commit
3fe89c0cdf
2 changed files with 11 additions and 13 deletions
|
@ -19,17 +19,14 @@ uniform vec4 Color;
|
||||||
// the interpolated normal
|
// the interpolated normal
|
||||||
in vec3 _normal;
|
in vec3 _normal;
|
||||||
in vec2 _texCoord0;
|
in vec2 _texCoord0;
|
||||||
/*
|
|
||||||
layout(location = 0) out vec4 _fragColor0;
|
|
||||||
layout(location = 1) out vec4 _fragColor1;
|
|
||||||
layout(location = 2) out vec4 _fragColor2;
|
|
||||||
*/
|
|
||||||
|
|
||||||
const float gamma = 2.2;
|
const float gamma = 2.2;
|
||||||
const float smoothing = 256.0;
|
const float smoothing = 256.0;
|
||||||
const float interiorCutoff = 0.8;
|
const float interiorCutoff = 0.8;
|
||||||
const float outlineExpansion = 0.2;
|
const float outlineExpansion = 0.2;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
// retrieve signed distance
|
// retrieve signed distance
|
||||||
float sdf = texture(Font, _texCoord0).g;
|
float sdf = texture(Font, _texCoord0).g;
|
||||||
|
@ -49,19 +46,15 @@ void main() {
|
||||||
// gamma correction for linear attenuation
|
// gamma correction for linear attenuation
|
||||||
a = pow(a, 1.0 / gamma);
|
a = pow(a, 1.0 / gamma);
|
||||||
|
|
||||||
|
// discard if unvisible
|
||||||
if (a < 0.01) {
|
if (a < 0.01) {
|
||||||
discard;
|
discard;
|
||||||
}
|
}
|
||||||
|
|
||||||
// final color
|
|
||||||
/* _fragColor0 = vec4(Color.rgb, Color.a * a);
|
|
||||||
_fragColor1 = vec4(normalize(_normal.xyz), 0.0) * 0.5 + vec4(0.5, 0.5, 0.5, 0.5);
|
|
||||||
_fragColor2 = vec4(Color.rgb, 10 / 128.0);
|
|
||||||
*/
|
|
||||||
packDeferredFragmentLightmap(
|
packDeferredFragmentLightmap(
|
||||||
normalize(_normal),
|
normalize(_normal),
|
||||||
Color.a * a,
|
1.0,
|
||||||
Color.rgb,
|
vec3(1.0),
|
||||||
DEFAULT_ROUGHNESS,
|
DEFAULT_ROUGHNESS,
|
||||||
DEFAULT_METALLIC,
|
DEFAULT_METALLIC,
|
||||||
DEFAULT_SPECULAR,
|
DEFAULT_SPECULAR,
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
|
|
||||||
|
#include <ColorUtils.h>
|
||||||
|
|
||||||
#include <StreamHelpers.h>
|
#include <StreamHelpers.h>
|
||||||
|
|
||||||
#include "sdf_text3D_vert.h"
|
#include "sdf_text3D_vert.h"
|
||||||
|
@ -354,7 +356,10 @@ void Font::drawString(gpu::Batch& batch, float x, float y, const QString& str, c
|
||||||
batch.setPipeline(layered ? _layeredPipeline : _pipeline);
|
batch.setPipeline(layered ? _layeredPipeline : _pipeline);
|
||||||
batch.setResourceTexture(_fontLoc, _texture);
|
batch.setResourceTexture(_fontLoc, _texture);
|
||||||
batch._glUniform1i(_outlineLoc, (effectType == OUTLINE_EFFECT));
|
batch._glUniform1i(_outlineLoc, (effectType == OUTLINE_EFFECT));
|
||||||
batch._glUniform4fv(_colorLoc, 1, (const float*)color);
|
|
||||||
|
// need the gamma corrected color here
|
||||||
|
glm::vec4 lrgba = glm::vec4(ColorUtils::toLinearVec3(glm::vec3(*color)), color->a);
|
||||||
|
batch._glUniform4fv(_colorLoc, 1, (const float*)&lrgba);
|
||||||
|
|
||||||
batch.setInputFormat(_format);
|
batch.setInputFormat(_format);
|
||||||
batch.setInputBuffer(0, _verticesBuffer, 0, _format->getChannels().at(0)._stride);
|
batch.setInputBuffer(0, _verticesBuffer, 0, _format->getChannels().at(0)._stride);
|
||||||
|
|
Loading…
Reference in a new issue