add test feed - sfeed_tests - sfeed tests and RSS and Atom files
HTML git clone git://git.codemadness.org/sfeed_tests
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 70bcf8c4a99b2e2ad44fa4f89e6bd338d3444920
DIR parent e6191cc4198e09664922f67d6d0edc01d66f72bd
HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Thu, 14 Aug 2025 18:42:50 +0200
add test feed
https://www.wellobserve.com/?rss=en
Atom feed.
Diffstat:
A input/sfeed/realworld/wellobserve.… | 1755 +++++++++++++++++++++++++++++++
1 file changed, 1755 insertions(+), 0 deletions(-)
---
DIR diff --git a/input/sfeed/realworld/wellobserve.com.atom.xml b/input/sfeed/realworld/wellobserve.com.atom.xml
@@ -0,0 +1,1754 @@
+<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom'><id>https://www.wellobserve.com/?rss</id><updated>2025-08-13T17:37:29+08:00</updated><title>WellObserve</title><link href='https://www.wellobserve.com/index.php?rss=en' rel='self'/><link href='https://www.wellobserve.com' /><author><name>吴奕茗</name><email>chengdulittlea@outlook.com</email><uri>https://www.wellobserve.com</uri></author><entry><id>https://www.wellobserve.com/?post=20211213142049</id><title type='html'> Our Paint dev log</title><link rel='alternate' href='https://www.wellobserve.com/?post=20211213142049' /><published>2021-12-13T14:20:49+08:00</published><updated>2025-08-13T17:37:29+08:00</updated><author><name>吴奕茗</name><email>chengdulittlea@outlook.com</email><uri>https://www.wellobserve.com</uri></author><content type='html'><h1> Our Paint dev log</h1>
+<p><a href="?post=20211212002943" onclick='ShowWaitingBar()'>从对MyPaint研究引出</a></p>
+<h2>其他局限</h2>
+<p>笔刷的序列混合不好实现,由于是并行提交,没有办法直接访问已工作的方块,所以可能只能以不透明和上次笔触完成后的FBO复制用以采样的方式工作。</p>
+<p>检查了之前的GUI截图,序列透明覆盖似乎是正确的,那么非半透明的覆盖应该也是顺序正常的,并且可以使用深度。但由于界面有浮动面板,这里实际不清楚能否去掉那些的FBO因为是二次叠上去的,不同面板不一定同时都刷新。</p><h3>额外贴图</h3>
+<ul>
+<li><strong>Main Image</strong>,超尺寸的用多张Tile,显存无法分配完全的则只分配以屏幕为中心的大于屏幕的尺寸,做笔刷整合时则需要多次切换并从内存中调入完整图(以每图而不是每笔刷为循环基准)。</li>
+<li><strong>缩小贴图</strong>,用于缩小时查看,为每个主图块的小图,尚不知如何生成最好,(可能需要从CPU端生成?这样每应用一笔都需要读回来)。</li>
+<li><strong>视口FBO</strong>,复用GUI的面板FBO,则无需新建,但注意像素格式,可能需要16位。</li>
+<li><del>视口FBO复制,因为需要一并混合到应用好的主图上</del>。似乎可以直接采样底图并画到视口FBO,可以节省一个FBO。</li>
+</ul><h2>主要操作细节</h2>
+<p>贴图步进尺寸似乎可以设置为128,这也可以作为初始最小贴图的尺寸(但根据初始引用笔刷直接调节至下一个合理尺寸),每次步进就复制到新的上面,同时检查再建立同样大小伪贴图的可行性,不行则表明不能再请求这么多的显存用于贴图复制,此时启用局部高清贴图模式,丢掉未显示的那些(从内存中再读)。</p>
+<p>涂抹和取色器采样似乎都只能从两层画完之后的视口FBO采,这样也能采到笔刷自身痕迹?(是期望的行为吗?)</p>
+<p>保存就贴图分块读回来存。</p>
+<p>时间原始时间每1/60秒更新一次笔刷显示列表,每提笔更新显示列表并应用最后一个撤销栈的笔画到光栅,对于不完整主图,需要重复调用内存里的那个图。</p><h2>该工具特点</h2>
+<ul>
+<li>无限画布(最终取决于客户机内存)</li>
+<li>有限撤销步数。(达到撤销步数的笔触合成到最终光栅上,未达到的为GL图元)</li>
+<li>基于像素而非矢量显示。</li>
+</ul>
+<h2>主要局限</h2>
+<p>一些低功耗硬件可能不具备足够显存和内存以运行大图。SurfacePro6的<code>glxinfo</code>报GL最大贴图尺寸为16384×8192,显存报3058MB共享,因此目前的大图应该能合理工作,更大的效率就比较低了。</p>
+<p><strong>无法混合和快速在原地累积,因此半透明刷子可能是很大的问题。</strong></p><p>更新:了解到<a href="https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_barrier.txt" target='_blank'>GL_NV_texture_barrier<sup>↗</sup></a>可能可以允许同时读写同一张贴图,应该可以实现方便的点点点叠加,应该也容易实现笔划(但没有具体看,好像稍微麻烦些,主要是笔画的情况下如何定义自身叠加和非叠加,使用二级图应当能旁路这个问题,不过在不清楚笔画尺寸的情况下需要画多个块拼接)</p><p>通过XInput2可以获得Wacom的压力和倾斜等参数</p>
+<div class='imd'><a href='?show_image=20221130215119.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221130215119.jpg" alt="图片" data-imgsrc='20221130215119.jpg'></a></div><p>可以画上去了哈哈哈</p>
+<div class='p_row'><div class='p_thumb'><div class='imd'><a href='?show_image=20221130152443.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221130152443.jpg" alt="图片" data-imgsrc='20221130152443.jpg'></a></div></div><div class='p_thumb'><div class='imd'><a href='?show_image=20221130152908.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221130152908.jpg" alt="图片" data-imgsrc='20221130152908.jpg'></a></div></div><div class='p_thumb' style='flex-grow:10000;box-shadow:none;height:0;'></div></div><p>好了至少能跑起来计算着色器了</p>
+<div class='imd'><a href='?show_image=20221127142207.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221127142207.jpg" alt="图片" data-imgsrc='20221127142207.jpg'></a></div><p>由于MyPaint储存为8位sRGB,因此再次打开时出现精度丢失,这是不期望的。</p>
+<p>研究发现可以使用计算着色器进行混合。可根据这个原理继续制作画图工具。</p>
+<p>此外,如果只是简单混合而没有涂抹,则可以考虑使用<a href="https://registry.khronos.org/OpenGL/extensions/EXT/EXT_shader_framebuffer_fetch.txt" target='_blank'>GL_EXT_shader_framebuffer_fetch<sup>↗</sup></a></p><p>0.1版 完成!</p>
+<div class='imd'><a href='?show_image=20221231225645.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221231225645.jpg" alt="图片" data-imgsrc='20221231225645.jpg'></a></div><p>汉化和各种可用性优化</p>
+<div class='imd'><a href='?show_image=20221229211521.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221229211521.jpg" alt="图片" data-imgsrc='20221229211521.jpg'></a></div><p>通过 <a href="http://www.gballard.net/photoshop/pdi_download/index.html#downloads" target='_blank'>这里<sup>↗</sup></a> 可以下载一个测试icc以检查icc配置是否正常工作。若正常,则会显示错误颜色</p><p>不错</p>
+<div class='imd'><a href='?show_image=20221216230013.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221216230013.jpg" alt="图片" data-imgsrc='20221216230013.jpg'></a></div><p>可以做笔刷了</p>
+<div class='imd'><a href='?show_image=20221215215041.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221215215041.jpg" alt="图片" data-imgsrc='20221215215041.jpg'></a></div><p>要复现目前使用的MyPaint笔刷形式,还需要:</p>
+<ul>
+<li>椭圆比例(或者sdf实现,用以更方便地获得方形)</li>
+<li>跟踪速度输入</li>
+<li>跟踪方向输入(以及平滑,如何实现)</li>
+<li>平滑位置(如何实现)</li>
+<li>随机/噪声</li>
+</ul>
+<p>映射挂件的撤销有问题,暂时还没管那么多,但需要修。</p>
+<p>空了来</p><p>新的映射挂件</p>
+<div class='imd'><a href='?show_image=20221212213136.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221212213136.jpg" alt="图片" data-imgsrc='20221212213136.jpg'></a></div><p>节点笔刷初步</p>
+<div class='p_row'><div class='p_thumb'><div class='imd'><a href='?show_image=20221212143028.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221212143028.jpg" alt="图片" data-imgsrc='20221212143028.jpg'></a></div></div><div class='p_thumb'><div class='imd'><a href='?show_image=20221212165735.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221212165735.jpg" alt="图片" data-imgsrc='20221212165735.jpg'></a></div></div><div class='p_thumb' style='flex-grow:10000;box-shadow:none;height:0;'></div></div><p>可以撤销了</p>
+<p>这样一来所有基本功能已经全部完成了。</p>
+<div class='imd'><a href='?show_image=20221211224456.mp4' target='_blank' onclick='event.preventDefault();'><video controls data-imgsrc='20221211224456.mp4'><source src='images/20221211224456.mp4' type='video/mp4'></video></a></div><p>储存单实例属性需要修改接口,做了个简化的假列表来支持单实例的指定文件保存。</p>
+<p>其他的似乎都正常工作,还差导出的合成颜色。</p>
+<div class='imd'><a href='?show_image=20221209202452.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221209202452.jpg" alt="图片" data-imgsrc='20221209202452.jpg'></a></div><p>总的来说,还有这些需要实现了才能共享该程序的初步版本:</p>
+<ul>
+<li>自定义的撤销命令。</li>
+<li>工程文件打包。</li>
+<li>切割文件导出。</li>
+<li>导入导出的选项。</li>
+<li>文件管理器的文件名以及过滤选项等优化。</li>
+</ul><p>可以文件了</p>
+<div class='imd'><a href='?show_image=20221208214258.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221208214258.jpg" alt="图片" data-imgsrc='20221208214258.jpg'></a></div><p>涂抹正确了</p>
+<div class='imd'><a href='?show_image=20221206214418.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221206214418.jpg" alt="图片" data-imgsrc='20221206214418.jpg'></a></div><p><a href="http://scottburns.us/subtractive-color-mixture-5/" target='_blank'>http://scottburns.us/subtractive-color-mixture-5/<sup>↗</sup></a></p>
+<p>混色看这里</p>
+<p>以及这个是mypaint的https://github.com/mypaint/mypaint/blob/master/doc/spectral/spectral.md</p><p>行了,涂抹的逻辑也可以了,虽然涂抹的效果不好,但是可用。</p>
+<div class='imd'><a href='?show_image=20221204215655.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20221204215655.jpg" alt="图片" data-imgsrc='20221204215655.jpg'></a></div><p>v0.1a,测试Windows版本</p>
+<div class='imd'><a href='?show_image=20230127121047.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20230127121047.jpg" alt="图片" data-imgsrc='20230127121047.jpg'></a></div><p>win大多数功能能用了</p><p>Windows原生基本上可以了</p>
+<p><a href="?post=20230120000903" onclick='ShowWaitingBar()'>这里</a></p><p>现在可以通过WSL运行(但是似乎很慢)</p>
+<div class='imd'><a href='?show_image=20230119123642.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20230119123642.jpg" alt="图片" data-imgsrc='20230119123642.jpg'></a></div><p><a href="?post=20230114104626" onclick='ShowWaitingBar()'>修了个问题</a></p><p>还是mypaint的光谱混合 但是在gpu了</p>
+<div class='imd'><a href='?show_image=20230106164842.jpg' target='_blank' onclick='event.preventDefault();'><img src="images/thumb/20230106164842.jpg" alt="图片" data-imgsrc='20230106164842.jpg'></a></div><p>新笔刷!</p>
codemadness.org:70 /git/sfeed_tests/commit/70bcf8c4a99b2e2ad44fa4f89e6bd338d3444920.gph:90: line too long