system
(system)
1
【Godotのバージョン】Godot_v4.6.1-stable_win64
【OSとそのバージョン】windows11
【言語】GDShader
【内容】
canvas_itemシェーダーの練習中に見つけたvertexの変数POINT_SIZEを操作しようとしたところ、普段と違うエラーが出力されました
このエラーの原因と対処法を、
また説明が少ないためPOINT_SIZEの正しい動作や利用法などを教えてほしいです
(POINT_SIZEの説明があるページ CanvasItem shaders — Godot Engine (4.6) documentation in English )
【エラーメッセージ】
--res://assets/common/material/pixelPerfect.gdshader--
2 |
3 | void vertex() {
E 4-> HOGEHOGE = HOGEHOGE * 0.5;
5 | }
6 |
ERROR: res://assets/common/material/pixelPerfect.gdshader:4 - 式に不明な識別子があります: 'HOGEHOGE'。
ERROR: Shader compilation failed.
↑は適当な存在しない変数HOGEHOGEを操作しようとした際のエラーなのですが、
↓の様にHOGEHOGEをPOINT_SIZEに置き換えるとエラー内容が変化します(長すぎるため.txtで添付、ほとんどGodotのソースコードらしきもの)
shader_type canvas_item;
void vertex() {
POINT_SIZE = POINT_SIZE * 0.5;
}
void fragment() {
COLOR = texture(TEXTURE, UV);
}
https://cdn.discordapp.com/attachments/1476627367027019837/1476627367165427722/04c0c161e819ef9b.txt?ex=69a1cfe6&is=69a07e66&hm=6cf7c882445c58baef0aeb42369bb734bf4be149ef4f2994d8d7086d4e1a8f3e&
from Discord by tyoropin
system
(system)
2
使ったことないのでよくわかりませんが、PointMesh用ではないでしょうか?? PointMesh — Godot Engine (stable) documentation in English
from Discord by lipliidol
system
(system)
3
OpenGLにはPointSpriteという描画機能があって、それ用に見えます https://marina.sys.wakayama-u.ac.jp/~tokoi/?date=20060227
from Discord by lipliidol
system
(system)
4
OpenGLと密接に関わるノード専用のパラメータって感じですか
あとでもうちょっとしっかり読んでみます
from Discord by tyoropin
system
(system)
5
PointSprite描画はVulkanでもあるようですね、D3DやMetalはよくわかりませんが…・・
from Discord by lipliidol
system
(system)
6
DirectX10以降だと点のサイズをサポートしていないので↓みたいにジオメトリーシェーダーを使ったり円のテクスチャを表示するなど工夫が必要です。vulkan, opengl, metalなら点のサイズをサポートしています。
from Discord by shiena.jp