{"id":100655,"date":"2026-09-05T01:40:52","date_gmt":"2026-09-04T17:40:52","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/100655.html"},"modified":"2026-09-05T01:40:52","modified_gmt":"2026-09-04T17:40:52","slug":"%e6%97%a0%e7%bc%9d%e5%b9%b3%e7%bc%9d%e8%b4%b4%e5%9b%be%e7%9a%84%e7%94%9f%e6%88%90%e4%b8%8e%e6%8e%a5%e7%bc%9d%e4%bf%ae%e8%a1%a5%ef%bc%9a%e4%bb%8e%e8%be%b9%e7%bc%98%e6%89%a9%e6%95%a3%e5%88%b0%e6%b3%8a","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/100655.html","title":{"rendered":"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865\uff1a\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408"},"content":{"rendered":"<h2>\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865&#xff1a;\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408<\/h2>\n<p>\u5728 3D \u6e32\u67d3\u4e0e\u73af\u5883\u7f8e\u672f\u7ba1\u7ebf\u4e2d&#xff0c;\u5730\u8868\u3001\u7816\u5899\u3001\u5ca9\u77f3\u7b49\u5927\u9762\u79ef\u6750\u8d28\u90fd\u9700\u8981\u8fdb\u884c\u5e73\u94fa&#xff08;Tiling&#xff09;\u3002\u65e0\u8bba\u662f\u901a\u8fc7 AI \u6269\u6563\u6a21\u578b&#xff08;\u5982 Stable Diffusion&#xff09;\u751f\u6210\u7684\u8d34\u56fe&#xff0c;\u8fd8\u662f\u65e0\u4eba\u673a\u822a\u62cd\u5b9e\u91c7\u7684\u7eb9\u7406&#xff0c;\u76f4\u63a5\u5e73\u94fa\u90fd\u4f1a\u5728\u56db\u5468\u8fb9\u6846\u51fa\u73b0\u523a\u773c\u7684\u51e0\u4f55\u7f1d\u9699\u4e0e\u8272\u8c03\u65ad\u5c42\u3002<\/p>\n<p>\u4f20\u7edf Photoshop \u4e2d\u7684\u201c\u4f4d\u79fb &#043; \u4eff\u5236\u56fe\u7ae0\u201d\u4f9d\u8d56\u4eba\u5de5\u624b\u52a8\u4fee\u8865&#xff0c;\u65e0\u6cd5\u96c6\u6210\u5230\u5168\u81ea\u52a8 PCG \u6216\u5b9e\u65f6\u6750\u8d28\u751f\u6210\u7ba1\u7ebf\u4e2d\u3002\u4ece\u7b97\u6cd5\u89d2\u5ea6\u51fa\u53d1&#xff0c;\u6d88\u9664\u8d34\u56fe\u63a5\u7f1d\u6709\u4e24\u79cd\u6838\u5fc3\u601d\u8def&#xff1a;\u57fa\u4e8e\u51e0\u4f55\u52a0\u6743\u7684\u8fb9\u7f18\u6e10\u53d8\u6269\u6563&#xff08;Alpha Feathered Wrap Blending&#xff09;&#xff0c;\u4ee5\u53ca\u57fa\u4e8e\u68af\u5ea6\u57df\u4f18\u5316\u7684\u6cca\u677e\u56fe\u50cf\u878d\u5408&#xff08;Poisson Image Blending&#xff09;\u3002<\/p>\n<h4>\u8d34\u56fe\u73af\u7ed5\u4f4d\u79fb\u4e0e\u63a5\u7f1d\u7684\u672c\u8d28<\/h4>\n<p>\u63a5\u7f1d\u4ea7\u751f\u7684\u6839\u672c\u539f\u56e0\u662f\u56fe\u50cf\u5de6\u53f3\u8fb9\u7f18 $I(0, y)$ \u4e0e $I(W-1, y)$\u3001\u4e0a\u4e0b\u8fb9\u7f18 $I(x, 0)$ \u4e0e $I(x, H-1)$ \u5b58\u5728\u50cf\u7d20\u503c\u4e0e\u68af\u5ea6\u5dee\u3002<\/p>\n<p>\u901a\u8fc7\u5bf9\u56fe\u50cf\u8fdb\u884c\u534a\u5bbd\u534a\u9ad8\u4f4d\u79fb&#xff08;Wrap Offset&#xff09;&#xff0c;\u5c06\u539f\u672c\u5728\u56db\u5468\u7684\u56db\u6761\u5916\u8fb9\u754c\u5e73\u79fb\u5230\u56fe\u50cf\u6b63\u4e2d\u592e\u5448\u5341\u5b57\u5f62\u5341\u5b57\u4ea4\u53c9\u7ebf&#xff1a;<\/p>\n<p>$$(x&#039;, y&#039;) &#061; ((x &#043; W\/2) \\\\pmod W, (y &#043; H\/2) \\\\pmod H)$$<\/p>\n<p>\u63a5\u7f1d\u4fee\u590d\u7684\u76ee\u6807&#xff0c;\u5c31\u662f\u5728\u4fdd\u6301\u56db\u5468\u8fb9\u6cbf\u7edd\u5bf9\u8fde\u7eed\u7684\u524d\u63d0\u4e0b&#xff0c;\u5c06\u5341\u5b57\u4ea4\u53c9\u63a5\u7f1d\u5904\u7684\u8fc7\u6e21\u5904\u7406\u5f97\u5e73\u6ed1\u65e0\u75d5\u3002<\/p>\n<h4>\u65b9\u6848\u4e00&#xff1a;\u57fa\u4e8e\u8ddd\u79bb\u573a\u7684\u8fb9\u7f18\u6269\u6563\u878d\u5408&#xff08;\u5feb\u901f\u4f46\u6613\u6a21\u7cca&#xff09;<\/h4>\n<p>\u8fb9\u7f18\u6269\u6563\u6cd5\u901a\u8fc7\u5728\u5341\u5b57\u63a5\u7f1d\u5904\u5b9a\u4e49\u4e00\u4e2a\u8fc7\u6e21\u5bbd\u5ea6&#xff08;Band Width $B$&#xff09;&#xff0c;\u5229\u7528\u7ebf\u6027\u6216\u4f59\u5f26\u63d2\u503c\u6743\u91cd\u5c06\u8fb9\u7f18\u50cf\u7d20\u4e0e\u5bf9\u5e94\u5185\u4fa7\u50cf\u7d20\u8fdb\u884c\u52a0\u6743\u5e73\u5747\u3002<\/p>\n<p>\u8fd9\u79cd\u65b9\u6cd5\u7684\u4f18\u70b9\u662f\u8ba1\u7b97\u6781\u5feb&#xff0c;\u4ec5\u9700\u51e0\u4e2a\u7247\u5143\u6307\u4ee4\u5373\u53ef\u5728 GPU \u4e0a\u5b8c\u6210&#xff1b;\u7f3a\u70b9\u662f\u5728\u9ad8\u9891\u7ec6\u8282\u7eb9\u7406&#xff08;\u5982\u9e45\u5375\u77f3\u3001\u88c2\u7eb9\u7816\u77f3&#xff09;\u4e0a&#xff0c;\u7ebf\u6027\u53e0\u52a0\u4f1a\u4ea7\u751f\u660e\u663e\u7684\u534a\u900f\u660e\u91cd\u5f71\u4e0e\u6a21\u7cca\u8f6f\u5316\u3002<\/p>\n<p>import numpy as np<\/p>\n<p>def make_seamless_feather(image: np.ndarray, overlap: float &#061; 0.15) -&gt; np.ndarray:<br \/>\n    &#034;&#034;&#034;<br \/>\n    \u57fa\u4e8e\u4f59\u5f26\u6743\u91cd\u7684\u8fb9\u7f18\u65e0\u7f1d\u878d\u5408<br \/>\n    :param image: \u8f93\u5165\u56fe\u50cf (H, W, C), float32 [0, 1]<br \/>\n    :param overlap: \u91cd\u53e0\u8fc7\u6e21\u533a\u57df\u5360\u6bd4 (0.0 &#8211; 0.5)<br \/>\n    &#034;&#034;&#034;<br \/>\n    h, w, c &#061; image.shape<br \/>\n    ow &#061; int(w * overlap)<br \/>\n    oh &#061; int(h * overlap)<\/p>\n<p>    # \u6784\u9020\u6c34\u5e73\u4e0e\u5782\u76f4\u5e73\u6ed1\u6743\u91cd\u77e9\u9635<br \/>\n    x &#061; np.linspace(0, 1, ow)<br \/>\n    w_weight &#061; 0.5 * (1 &#8211; np.cos(np.pi * x)) # \u4f59\u5f26\u5e73\u6ed1\u66f2\u7ebf<\/p>\n<p>    y &#061; np.linspace(0, 1, oh)<br \/>\n    h_weight &#061; 0.5 * (1 &#8211; np.cos(np.pi * y))<\/p>\n<p>    # \u5148\u505a Wrap Offset \u5c06\u8fb9\u7f18\u79fb\u5230\u4e2d\u5fc3<br \/>\n    shifted &#061; np.roll(np.roll(image, shift&#061;w \/\/ 2, axis&#061;1), shift&#061;h \/\/ 2, axis&#061;0)<\/p>\n<p>    # \u5bf9\u5341\u5b57\u4ea4\u53c9\u533a\u57df\u8fdb\u884c\u6743\u91cd\u5e73\u6ed1\u6df7\u5408<br \/>\n    # &#8230; \u5728\u8fc7\u6e21\u533a\u6df7\u5408\u539f\u59cb\u8fb9\u6cbf\u4fe1\u606f &#8230;<br \/>\n    return shifted<\/p>\n<h4>\u65b9\u6848\u4e8c&#xff1a;\u68af\u5ea6\u57df\u6cca\u677e\u878d\u5408&#xff08;\u4fdd\u6301\u9ad8\u9891\u7ec6\u8282\u4e0e\u5149\u7167\u4e00\u81f4&#xff09;<\/h4>\n<p>\u4e3a\u4e86\u907f\u514d\u878d\u5408\u533a\u57df\u53d8\u6a21\u7cca&#xff0c;\u5fc5\u987b\u5728**\u68af\u5ea6\u57df&#xff08;Gradient Domain&#xff09;**\u8fdb\u884c\u6c42\u89e3\u3002\u6cca\u677e\u878d\u5408\u7684\u6838\u5fc3\u601d\u60f3\u662f&#xff1a;\u4fdd\u6301\u5f85\u4fee\u8865\u533a\u57df\u5185\u7684\u7ec6\u8282\u7eb9\u7406\u68af\u5ea6 $\\\\mathbf{v} &#061; \\\\nabla I$ \u4e0d\u53d8&#xff0c;\u540c\u65f6\u5f3a\u884c\u7ea6\u675f\u4fee\u8865\u533a\u57df\u8fb9\u754c\u4e0e\u76ee\u6807\u80cc\u666f\u5b8c\u5168\u543b\u5408\u3002<\/p>\n<p>\u6570\u5b66\u4e0a&#xff0c;\u8fd9\u7b49\u4ef7\u4e8e\u6c42\u89e3\u5e26\u6709\u72c4\u5229\u5229\u6761\u4ef6&#xff08;Dirichlet Boundary Conditions&#xff09;\u7684\u6cca\u677e\u504f\u5fae\u5206\u65b9\u7a0b&#xff1a;<\/p>\n<p>$$\\\\Delta f &#061; \\\\operatorname{div} \\\\mathbf{v} \\\\quad \\\\text{over } \\\\Omega, \\\\quad \\\\text{with } f|{\\\\partial \\\\Omega} &#061; f^*|{\\\\partial \\\\Omega}$$<\/p>\n<p>\u5176\u4e2d&#xff1a;<\/p>\n<ul>\n<li>$\\\\Delta &#061; \\\\frac{\\\\partial^2}{\\\\partial x^2} &#043; \\\\frac{\\\\partial^2}{\\\\partial y^2}$ \u4e3a\u62c9\u666e\u62c9\u65af\u7b97\u5b50&#xff08;Laplace Operator&#xff09;\u3002<\/li>\n<li>$\\\\mathbf{v}$ \u662f\u5728\u5341\u5b57\u63a5\u7f1d\u5904\u91c7\u6837\u7684\u5f15\u5bfc\u5411\u91cf\u573a&#xff08;\u901a\u5e38\u76f4\u63a5\u53d6\u539f\u56fe\u4f4d\u79fb\u540e\u7684\u68af\u5ea6&#xff09;\u3002<\/li>\n<li>$\\\\partial \\\\Omega$ \u4e3a\u7f1d\u9699\u8fc7\u6e21\u5e26\u7684\u5916\u8fb9\u754c\u3002<\/li>\n<\/ul>\n<p>\u5728\u79bb\u6563\u7f51\u683c\u4e0a&#xff0c;\u62c9\u666e\u62c9\u65af\u65b9\u7a0b\u8868\u73b0\u4e3a\u4e00\u4e2a\u5de8\u5927\u7684\u7a00\u758f\u7ebf\u6027\u65b9\u7a0b\u7ec4 $A \\\\mathbf{x} &#061; \\\\mathbf{b}$&#xff0c;\u6bcf\u4e2a\u5185\u90e8\u50cf\u7d20\u6ee1\u8db3\u4e94\u70b9\u79bb\u6563\u5dee\u5206\u683c\u5f0f&#xff1a;<\/p>\n<p>$$4 f_{i,j} &#8211; f_{i-1,j} &#8211; f_{i&#043;1,j} &#8211; f_{i,j-1} &#8211; f_{i,j&#043;1} &#061; \\\\operatorname{div} \\\\mathbf{v}(i, j)$$<\/p>\n<h4>\u6cca\u677e\u65e0\u7f1d\u8d34\u56fe\u4fee\u8865\u7684\u5de5\u7a0b\u5b9e\u73b0<\/h4>\n<p>\u4e0b\u9762\u7ed9\u51fa\u5229\u7528 SciPy \u7a00\u758f\u77e9\u9635\u6c42\u89e3\u5668\u5b9e\u73b0\u7684\u65e0\u7f1d\u8d34\u56fe\u4fee\u8865\u6d41\u6c34\u7ebf&#xff1a;<\/p>\n<p>import numpy as np<br \/>\nimport scipy.sparse as sp<br \/>\nimport scipy.sparse.linalg as splinalg<br \/>\nimport cv2<\/p>\n<p>def make_seamless_poisson(img: np.ndarray, blend_width: int &#061; 32) -&gt; np.ndarray:<br \/>\n    &#034;&#034;&#034;<br \/>\n    \u4f7f\u7528\u6cca\u677e\u878d\u5408\u6d88\u9664\u4f4d\u79fb\u540e\u7684\u5341\u5b57\u63a5\u7f1d<br \/>\n    :param img: \u8f93\u5165\u56fe\u50cf float32, \u8303\u56f4 [0, 1]<br \/>\n    :param blend_width: \u5341\u5b57\u63a5\u7f1d\u5904\u7684\u4fee\u8865\u5e26\u534a\u5bbd (\u50cf\u7d20)<br \/>\n    &#034;&#034;&#034;<br \/>\n    h, w, c &#061; img.shape<\/p>\n<p>    # 1. \u73af\u7ed5\u4f4d\u79fb&#xff0c;\u4f7f\u5916\u8fb9\u6846\u5bf9\u9f50\u5230\u5185\u90e8<br \/>\n    shifted &#061; np.roll(np.roll(img, shift&#061;w \/\/ 2, axis&#061;1), shift&#061;h \/\/ 2, axis&#061;0)<\/p>\n<p>    # 2. \u6784\u5efa\u5341\u5b57\u63a5\u7f1d\u4fee\u8865 Mask (1 \u4ee3\u8868\u5f85\u4fee\u8865\u533a\u57df&#xff0c;0 \u4ee3\u8868\u7edd\u5bf9\u4fdd\u6301\u533a\u57df)<br \/>\n    mask &#061; np.zeros((h, w), dtype&#061;np.uint8)<br \/>\n    cx, cy &#061; w \/\/ 2, h \/\/ 2<br \/>\n    mask[:, max(0, cx &#8211; blend_width):min(w, cx &#043; blend_width)] &#061; 1<br \/>\n    mask[max(0, cy &#8211; blend_width):min(h, cy &#043; blend_width), :] &#061; 1<\/p>\n<p>    # 3. \u8ba1\u7b97\u5f15\u5bfc\u68af\u5ea6\u573a (\u91c7\u7528\u539f\u56fe\u672a\u4f4d\u79fb\u65f6\u7684\u8fb9\u754c\u65e0\u7f1d\u68af\u5ea6)<br \/>\n    # \u4e3a\u6bcf\u4e2a\u901a\u9053\u72ec\u7acb\u6c42\u89e3\u6cca\u677e\u65b9\u7a0b<br \/>\n    result &#061; np.zeros_like(shifted)<\/p>\n<p>    # \u5efa\u7acb\u672a\u77e5\u6570\u50cf\u7d20\u7d22\u5f15\u6620\u5c04<br \/>\n    unknown_indices &#061; np.where(mask &#061;&#061; 1)<br \/>\n    num_unknowns &#061; len(unknown_indices[0])<\/p>\n<p>    coord_to_idx &#061; -np.ones((h, w), dtype&#061;np.int32)<br \/>\n    for idx, (y, x) in enumerate(zip(unknown_indices[0], unknown_indices[1])):<br \/>\n        coord_to_idx[y, x] &#061; idx<\/p>\n<p>    # \u6784\u5efa\u7a00\u758f\u62c9\u666e\u62c9\u65af\u77e9\u9635 A<br \/>\n    A &#061; sp.lil_matrix((num_unknowns, num_unknowns), dtype&#061;np.float32)<\/p>\n<p>    for idx, (y, x) in enumerate(zip(unknown_indices[0], unknown_indices[1])):<br \/>\n        A[idx, idx] &#061; 4.0<br \/>\n        neighbors &#061; [(y &#8211; 1, x), (y &#043; 1, x), (y, x &#8211; 1), (y, x &#043; 1)]<br \/>\n        for ny, nx in neighbors:<br \/>\n            ny &#061; ny % h<br \/>\n            nx &#061; nx % w<br \/>\n            if mask[ny, nx] &#061;&#061; 1:<br \/>\n                n_idx &#061; coord_to_idx[ny, nx]<br \/>\n                A[idx, n_idx] &#061; -1.0<\/p>\n<p>    A &#061; A.tocsr()<\/p>\n<p>    # \u6c42\u89e3\u6bcf\u4e2a\u989c\u8272\u901a\u9053<br \/>\n    for ch in range(c):<br \/>\n        b &#061; np.zeros(num_unknowns, dtype&#061;np.float32)<br \/>\n        channel_data &#061; shifted[:, :, ch]<\/p>\n<p>        # \u8ba1\u7b97\u79bb\u6563\u6563\u5ea6\u4e0e\u8fb9\u754c\u6761\u4ef6<br \/>\n        for idx, (y, x) in enumerate(zip(unknown_indices[0], unknown_indices[1])):<br \/>\n            # \u4ece\u4f4d\u79fb\u539f\u56fe\u4e2d\u8ba1\u7b97\u76ee\u6807\u62c9\u666e\u62c9\u65af\u503c<br \/>\n            div &#061; 4.0 * channel_data[y, x] &#8211; (<br \/>\n                channel_data[(y &#8211; 1) % h, x] &#043;<br \/>\n                channel_data[(y &#043; 1) % h, x] &#043;<br \/>\n                channel_data[y, (x &#8211; 1) % w] &#043;<br \/>\n                channel_data[y, (x &#043; 1) % w]<br \/>\n            )<\/p>\n<p>            # \u8fb9\u754c\u56fa\u5b9a\u503c\u7ea6\u675f<br \/>\n            neighbors &#061; [(y &#8211; 1, x), (y &#043; 1, x), (y, x &#8211; 1), (y, x &#043; 1)]<br \/>\n            for ny, nx in neighbors:<br \/>\n                ny &#061; ny % h<br \/>\n                nx &#061; nx % w<br \/>\n                if mask[ny, nx] &#061;&#061; 0:<br \/>\n                    div &#043;&#061; channel_data[ny, nx]<\/p>\n<p>            b[idx] &#061; div<\/p>\n<p>        # \u4f7f\u7528\u5171\u8f6d\u68af\u5ea6\u6cd5\u5feb\u901f\u6c42\u89e3\u7a00\u758f\u7cfb\u7edf<br \/>\n        x_sol, _ &#061; splinalg.cg(A, b, maxiter&#061;200, tol&#061;1e-5)<\/p>\n<p>        reconstructed &#061; channel_data.copy()<br \/>\n        for idx, (y, x) in enumerate(zip(unknown_indices[0], unknown_indices[1])):<br \/>\n            reconstructed[y, x] &#061; x_sol[idx]<\/p>\n<p>        result[:, :, ch] &#061; np.clip(reconstructed, 0.0, 1.0)<\/p>\n<p>    return result<\/p>\n<h4>\u4e24\u7c7b\u7b97\u6cd5\u7684\u6027\u80fd\u4e0e\u9002\u7528\u573a\u666f\u6743\u8861<\/h4>\n<table>\n<tr>\u8bc4\u4f30\u7ef4\u5ea6\u8fb9\u7f18\u6269\u6563\u7fbd\u5316&#xff08;Alpha Feathering&#xff09;\u68af\u5ea6\u57df\u6cca\u677e\u878d\u5408&#xff08;Poisson Blending&#xff09;<\/tr>\n<tbody>\n<tr>\n<td align=\"left\">\u8ba1\u7b97\u590d\u6742\u5ea6<\/td>\n<td align=\"left\">$O(N)$&#xff0c;\u7b80\u5355\u7ebf\u6027\u63d2\u503c<\/td>\n<td align=\"left\">$O(N^{1.5})$&#xff0c;\u7a00\u758f\u7ebf\u6027\u7cfb\u7edf\u6c42\u89e3<\/td>\n<\/tr>\n<tr>\n<td align=\"left\">GPU \u5b9e\u65f6\u6027<\/td>\n<td align=\"left\">\u6781\u4f73&#xff08;\u53ef\u5728\u7247\u5143\u7740\u8272\u5668 0.05ms \u5185\u5b8c\u6210&#xff09;<\/td>\n<td align=\"left\">\u8f83\u91cd&#xff08;\u901a\u5e38\u5728\u79bb\u7ebf\u70d8\u7119\u6216 Compute Shader \u591a\u7f51\u683c\u8fed\u4ee3&#xff09;<\/td>\n<\/tr>\n<tr>\n<td align=\"left\">\u9ad8\u9891\u8fb9\u7f18\u4fdd\u6301<\/td>\n<td align=\"left\">\u6613\u4ea7\u751f\u6a21\u7cca\u5149\u6655\u4e0e\u53cc\u91cd\u91cd\u5f71<\/td>\n<td align=\"left\">\u6781\u4f73&#xff0c;\u5b8c\u6574\u4fdd\u7559\u7802\u77f3\u3001\u7816\u7f1d\u7b49\u9ad8\u9891\u62d3\u6251<\/td>\n<\/tr>\n<tr>\n<td align=\"left\">\u5927\u5c3a\u5ea6\u5149\u7167\u5e73\u6ed1<\/td>\n<td align=\"left\">\u65e0\u6cd5\u6d88\u9664\u5168\u5c40\u660e\u6697\u6e10\u53d8\u8272\u5dee<\/td>\n<td align=\"left\">\u81ea\u52a8\u6269\u6563\u4f4e\u9891\u8272\u5f69&#xff0c;\u6d88\u9664\u9634\u9633\u8138<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u5728\u73b0\u4ee3\u8d44\u4ea7\u81ea\u52a8\u5316\u6d41\u6c34\u7ebf\u4e2d&#xff0c;\u5bf9\u4e8e\u6cd5\u7ebf\u8d34\u56fe&#xff08;Normal Map&#xff09;\u548c\u7c97\u7cd9\u5ea6\u8d34\u56fe&#xff08;Roughness Map&#xff09;&#xff0c;\u7531\u4e8e\u6cd5\u7ebf\u5411\u91cf\u5177\u6709\u5f52\u4e00\u5316\u51e0\u4f55\u7ea6\u675f&#xff0c;\u901a\u5e38\u91c7\u7528\u6269\u6563\u4e0e\u5207\u7ebf\u91cd\u5f52\u4e00\u5316&#xff1b;\u800c\u5bf9\u4e8e\u9ad8\u52a8\u6001\u6f2b\u53cd\u5c04\u8d34\u56fe&#xff08;Albedo \/ Base Color&#xff09;&#xff0c;\u6cca\u677e\u878d\u5408\u5219\u662f\u6d88\u9664\u5149\u7167\u4e0d\u5747\u4e0e\u8fb9\u7f18\u8272\u5dee\u7684\u5de5\u4e1a\u6807\u51c6\u5229\u5668\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865&#xff1a;\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408<br \/>\n\u5728 3D \u6e32\u67d3\u4e0e\u73af\u5883\u7f8e\u672f\u7ba1\u7ebf\u4e2d&#xff0c;\u5730\u8868\u3001\u7816\u5899\u3001\u5ca9\u77f3\u7b49\u5927\u9762\u79ef\u6750\u8d28\u90fd\u9700\u8981\u8fdb\u884c\u5e73\u94fa&#xff08;Tiling&#xff09;\u3002\u65e0\u8bba\u662f\u901a\u8fc7 AI \u6269\u6563\u6a21\u578b&#xff08;\u5982 Stable Diffusion&#xff09;\u751f\u6210\u7684\u8d34\u56fe&#xff0c;\u8fd8\u662f\u65e0\u4eba\u673a\u822a\u62cd\u5b9e\u91c7\u7684\u7eb9\u7406&#xff0c;\u76f4\u63a5\u5e73\u94fa\u90fd\u4f1a\u5728\u56db\u5468\u8fb9\u6846\u51fa\u73b0\u523a\u773c\u7684\u51e0\u4f55\u7f1d\u9699\u4e0e\u8272\u8c03\u65ad\u5c42\u3002<br \/>\n\u4f20\u7edf Photoshop \u4e2d\u7684\u201c\u4f4d\u79fb  \u4eff\u5236\u56fe\u7ae0\u201d\u4f9d\u8d56\u4eba\u5de5\u624b\u52a8\u4fee\u8865<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[66,183,50,1248,51],"topic":[],"class_list":["post-100655","post","type-post","status-publish","format-standard","hentry","category-server","tag-ai","tag-unity","tag-50","tag-1248","tag-51"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865\uff1a\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/100655.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865\uff1a\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865&#xff1a;\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408 \u5728 3D \u6e32\u67d3\u4e0e\u73af\u5883\u7f8e\u672f\u7ba1\u7ebf\u4e2d&#xff0c;\u5730\u8868\u3001\u7816\u5899\u3001\u5ca9\u77f3\u7b49\u5927\u9762\u79ef\u6750\u8d28\u90fd\u9700\u8981\u8fdb\u884c\u5e73\u94fa&#xff08;Tiling&#xff09;\u3002\u65e0\u8bba\u662f\u901a\u8fc7 AI \u6269\u6563\u6a21\u578b&#xff08;\u5982 Stable Diffusion&#xff09;\u751f\u6210\u7684\u8d34\u56fe&#xff0c;\u8fd8\u662f\u65e0\u4eba\u673a\u822a\u62cd\u5b9e\u91c7\u7684\u7eb9\u7406&#xff0c;\u76f4\u63a5\u5e73\u94fa\u90fd\u4f1a\u5728\u56db\u5468\u8fb9\u6846\u51fa\u73b0\u523a\u773c\u7684\u51e0\u4f55\u7f1d\u9699\u4e0e\u8272\u8c03\u65ad\u5c42\u3002 \u4f20\u7edf Photoshop \u4e2d\u7684\u201c\u4f4d\u79fb \u4eff\u5236\u56fe\u7ae0\u201d\u4f9d\u8d56\u4eba\u5de5\u624b\u52a8\u4fee\u8865\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/100655.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-04T17:40:52+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/100655.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/100655.html\",\"name\":\"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865\uff1a\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-09-04T17:40:52+00:00\",\"dateModified\":\"2026-09-04T17:40:52+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/100655.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/100655.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/100655.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865\uff1a\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865\uff1a\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/100655.html","og_locale":"zh_CN","og_type":"article","og_title":"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865\uff1a\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865&#xff1a;\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408 \u5728 3D \u6e32\u67d3\u4e0e\u73af\u5883\u7f8e\u672f\u7ba1\u7ebf\u4e2d&#xff0c;\u5730\u8868\u3001\u7816\u5899\u3001\u5ca9\u77f3\u7b49\u5927\u9762\u79ef\u6750\u8d28\u90fd\u9700\u8981\u8fdb\u884c\u5e73\u94fa&#xff08;Tiling&#xff09;\u3002\u65e0\u8bba\u662f\u901a\u8fc7 AI \u6269\u6563\u6a21\u578b&#xff08;\u5982 Stable Diffusion&#xff09;\u751f\u6210\u7684\u8d34\u56fe&#xff0c;\u8fd8\u662f\u65e0\u4eba\u673a\u822a\u62cd\u5b9e\u91c7\u7684\u7eb9\u7406&#xff0c;\u76f4\u63a5\u5e73\u94fa\u90fd\u4f1a\u5728\u56db\u5468\u8fb9\u6846\u51fa\u73b0\u523a\u773c\u7684\u51e0\u4f55\u7f1d\u9699\u4e0e\u8272\u8c03\u65ad\u5c42\u3002 \u4f20\u7edf Photoshop \u4e2d\u7684\u201c\u4f4d\u79fb \u4eff\u5236\u56fe\u7ae0\u201d\u4f9d\u8d56\u4eba\u5de5\u624b\u52a8\u4fee\u8865","og_url":"https:\/\/www.wsisp.com\/helps\/100655.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-09-04T17:40:52+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/100655.html","url":"https:\/\/www.wsisp.com\/helps\/100655.html","name":"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865\uff1a\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-09-04T17:40:52+00:00","dateModified":"2026-09-04T17:40:52+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/100655.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/100655.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/100655.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u65e0\u7f1d\u5e73\u7f1d\u8d34\u56fe\u7684\u751f\u6210\u4e0e\u63a5\u7f1d\u4fee\u8865\uff1a\u4ece\u8fb9\u7f18\u6269\u6563\u5230\u6cca\u677e\u878d\u5408"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/100655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=100655"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/100655\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=100655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=100655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=100655"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=100655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}